表示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: 错误出现
继续执行

このように、我々は例外を完了することができ、印刷されたエラーを分析するために私たちを助けることができます。

トレースバックモジュールの例外を印刷するには、2つの方法があり、一つはある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