Модуль отслеживающего с помощью Python записи исключений, отображающей

И ненормальная борьба уже программист обычное дело. Много раз нам нужно распечатать всю информацию об исключении. Наиболее распространенный метод является прямым использованием исключения захвата:

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