純粋なPythonは、既存のトレースバックオブジェクトを変更したり、任意のトレースバックオブジェクトを作成したりする方法を提供しません。
>>> exc_info[2].tb_next = None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: readonly attribute
>>> types.TracebackType()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot create 'traceback' instances
これを行うことができれば、トレースバックのデフォルトのフォーマットに影響を与えるだけでなく、ユーティリティモジュールの事後エラーをpdbを使用する人々の能力にも干渉することに注意してください。
トレースバックがログに記録されているか、ユーティリティモジュールによってフォーマットされている場合は、興味がないと思われるフレームを出力に含めることはできません。たとえば、標準ライブラリのunittest
モジュールは、テストの実行中に発生したエラーを報告するときにこれを行います。