표시 파이썬 예외 기록을 이용한 역 추적 모듈

그리고 비정상적인 싸움은 이미 프로그래머의 일상이다. 많은 경우 우리는 모든 예외 정보를 출력해야합니다. 더 일반적인 방법은 캡쳐에 대한 예외를 직접 사용하는 것입니다 :

import time

def error_func():
    raise ValueError("错误出现")

if __name__ == '__main__':
    try:
        error_func()
    except ValueError as e:
        print(e)

    time.sleep(1)
    print('继续执行')

다음과 같이 인쇄 결과는 다음과 같습니다

错误出现
继续执行

그러나, 위의 코드는 바로 이상 정보 및 인쇄없이 비정상적인 유형을 인쇄 할 수 있습니다. 우리는 당신과 함께해야 할 많은 일을 예외 처리에 투사하면 异常出现的位置, 异常信息, 异常的类型그들은 인쇄 우리가 오류를 해결하는 데 도움이된다.

완전한 이상을 인쇄 할 수 format_exc 방법으로 역 추적 모듈을 사용하여

다음 샘플 코드는 다음과 같습니다

import time
def error_func():
    raise ValueError("错误出现")

if __name__ == '__main__':
    try:
        error_func()
    except ValueError:
        import traceback
        print(traceback.format_exc())

    time.sleep(1)
    print('继续执行')

결과는 다음과 같다 :

Traceback (most recent call last):
  File "D:/auto/pro/error_test.py", line 9, in <module>
    error_func()
  File "D:/auto/pro/error_test.py", line 4, in error_func
    raise ValueError("错误出现")
ValueError: 错误出现
继续执行

이러한 방법으로, 우리는 오류를 분석하는 데 도움이 수, 예외가 인쇄 완료 할 수 있습니다.

역 추적 모듈 예외를 인쇄하는 방법은 두 가지가 있습니다, 하나는 format_exc다른 하나는, print_exc
: 모두가 그렇게 할 print_exc방법은 콘솔에서 오류 메시지를 인쇄 할 수 없습니다뿐만 아니라 파일에 오류 정보를 기록 할 수 있습니다.
위의 코드를 개선하기 위해 :

import os
import time

def error_func():
    raise ValueError("错误出现")

if __name__ == '__main__':

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    ERROR_LOG_PATH = os.path.join(BASE_DIR,'core','error_log.log')
    try:
        error_func()
    except ValueError:
        import traceback
        traceback.print_exc(file=open(ERROR_LOG_PATH,'a+'))

    time.sleep(1)
    print('继续执行')

우리는 오류 로그를 작성하는 추가적인 방법의 행방을, 그래서 우리가 오류를 해결하는 데 도움이.

参考博客:https://www.cnblogs.com/alummox/p/7465197.html

추천

출처www.cnblogs.com/paulwhw/p/11316567.html