しょっちゅう忘れることを書いておく。
|  | 69 | 
1970 views
import traceback
if __name__ == '__main__':
    try:
        # 処理
    except:
        print(traceback.format_exc())
tracebackモジュールは、エラーの詳細なトレースバック(スタックトレース)を取得するために使用されます。tryブロックで実行するコードを記述し、例外が発生した場合はexceptブロックが実行されます。traceback.format_exc()を使うことで、直近に発生した例外のトレースバックを文字列として取得し、printで表示します。これにより、どのようなエラーがどこで発生したのかを詳細に確認できます。tracebackが使えない場合の対処方法#coding:UTF-8
import sys
import inspect
if __name__ == '__main__':
    try:
        with open("notexist.txt") as f:
            f.read()
    except:
        # 例外の種類を表示
        print(str(sys.exc_info()[0]))
        # 例外メッセージを表示
        print(str(sys.exc_info()[1]))
        # トレースバックオブジェクトを取得して詳細情報を表示
        traceback_object = sys.exc_info()[2]
        while traceback_object:
            print(inspect.getframeinfo(traceback_object.tb_frame))
            traceback_object = traceback_object.tb_next
sys.exc_info()は、現在発生している例外に関する情報を返します。これは3つの要素を含むタプルで、(例外の型, 例外の値, トレースバックオブジェクト)が含まれます。str(sys.exc_info()[0])とstr(sys.exc_info()[1])で、例外の種類とメッセージを表示します。sys.exc_info()[2]で取得したトレースバックオブジェクトを使って、手動でトレースバックを表示します。inspect.getframeinfo()を使用して、エラーが発生した場所の詳細(ファイル名、行番号など)を取得し、それを表示します。tracebackモジュールが使用できない場合の代替手段として役立ちます。tracebackが利用できる環境では、traceback.format_exc()が簡単で便利です。詳細なトレースバックを簡単に取得できます。tracebackが使えない場合、sysとinspectを組み合わせて手動でトレースバックを再現できます。これにより、エラーの発生場所や詳細な情報を表示可能です。Page 11 of 69.
        
         
                         
                    
すぺぺぺ
                    
                    本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
                    
                
https://www.osumoi-stdio.com/novel/