2016-12-05 5 views
2

파이썬에서 내장 된 에러의 동작과 출력을 편집/사용자 정의 할 수 있는지 궁금합니다. 예를 들어, 내가 입력 :파이썬에서 내장 된 오류 메시지를 수정할 수 있습니까? (그렇다면, 어떻게?)

>>> a = 1 
>>> print A 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'A' is not defined 

내가 출력을 대신 할 것을 권장합니다, 또한

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'A' is not defined. Check capitalization. 

, 나는 이것이 미래의 모든 코드에 대한 글로벌 수준에서 발생 할 명시 적으로하지 않고 내 코드에 예외가 포함됩니다. 이러한 변경이 가능하다면 파이썬의 소스 또는 라이브러리 파일 수준에서이 작업을 수행해야한다고 가정합니다. 그러나 이것이 가능한지 정확히 알기 위해 어디에서 확실하지 않습니다.

우분투와 OSX 모두에서 Python 2.7을 사용하고 있으므로 두 시스템 모두에서 도움이 될 것입니다.

(이 내용이 다른 곳에서 다루어지면 사전에 사과하지만 "Python 오류 메시지 변경"에서 스레드를 검색하면 일반적으로 예외 사항에 대한 주제가 나왔습니다. 여기서는 필자가 관심을 가질만한 주제가 아닙니다. 이것, 그렇지만, 크게 감사하겠습니다.)

+0

@ shash678 가져온 주제가 현재 질문에 응답하지 않습니다. – KromviellBlack

+0

소스 코드를 가지고 놀아야 할 가능성이 높으며, C 언어로되어있을 가능성이 높기 때문에 Python을 다시 빌드해야합니다. 파이썬 소스를 망치는 것은 당신이 정말로 무엇을하는지 알지 못한다면 * 나쁜 생각입니다 *. –

+0

소스 코드에 더 많은 로직을 추가해야합니다. 예를 들면. a와 A가 모두 정의되어 있지 않을 때 인쇄 할 경우에도 동일한 오류가 발생합니다. 편집 할 위치를 모른다는 사실은 CPython 컴파일러를 먼저 공부하고 예외를 어떻게 시작해야 하는지를 알려주는 것입니다. – MYGz

답변

1

예! 정확히 원하는대로 할 수있는 방법이 있습니다! traceback.py는 코드에서 오류를 감지하는 프로그램입니다. 그런 다음 어떤 일이 발생했는지에 대한 설명을 제공합니다 (오류 메시지가 나타납니다). 이 파일은 라이브러리 폴더에서 python을 찾을 수 있습니다. 해당 파일을 열면 오류가 발생했을 때 출력되는 메시지를 변경할 수 있습니다! 이것이 도움이되었는지 알려주세요.

+0

멋진! 이것은 가장 확실하게 도와 줬어, 정말 고마워! 이상하게도, 파일에 명시 적으로 포함되지 않는 유일한 오류 유형은 NameError이지만, SyntaxError 및 ValueError와 같은 다른 오류 유형도 있습니다. 그럼에도 불구하고, 이것은 정확히 나에게 시작할 곳을 제공했기 때문에 내가 찾던 바로 그 도움이었다. NameError를 편집 할 수있는 곳을 알아 내면이 스레드를 업데이트 할 것입니다. – Dennis

+0

내가 도와 줘서 다행이야! – Qwerty