traceback.format_exception_only
には引数(etype, value)
があります。私がフォーマットしたい例外がある場合、どのような状況でformat_exception_only(type(e), e)
に電話したくないでしょうか?なぜPythonは例外タイプと値(exc_info、__exit__など)を分離するのですか?
sys.exc_info
は、型、値、およびトレースバックを返します。コンテキストマネージャのメソッド__exit__
は、パラメータと同じ3つのものを持っています。タイプは重複していませんか?それはtype(value)
以外のものと等しいことができますか?
「トレースバックはこれらのオブジェクトのいずれにも接続されていませんでした」というケースはまだありませんか? –
@AlexHall:Python 3では、例外オブジェクトの '__traceback__'属性としてトレースバックが利用できます。 – user2357112
ええ、それは分かりませんでした。 Python 2のドキュメントは、トレースバックを格納することによって作成されるサイクルが非効率的であることを警告します。新しい属性はPython 3の効率を傷つけるのか、それとも魔法ですか? –