Python - 例外が発生したときにスタック内の値を取得する方法
習慣沉默
習慣沉默 2017-05-18 10:59:04
0
4
740

次のようなコードがあるとします:

リーリー

ここで、例外が発生したときに例外が発生する前の各変数の値を取得したい、つまり a=1, b=0 のような結果を取得したいとします。

習慣沉默
習慣沉默

全員に返信(4)
習慣沉默

inspect.currentframe

リーリー
いいねを押す +0
Ty80

この Python は積極的に実装できないはずです。そのようなメソッドがある場合、多層呼び出し中に例外が発生し、対応するデータが層ごとに記録されて返され、メモリの問題が発生する可能性があります。 ; そして、例外が発生する前に、仮想マシンは問題があることを認識しません。これは、i_pmod 関数で実装された、上記のゼロによる除算例外が実行されているようなものです。 PyIntobject のコードでは、除数が 0 であると判断され、例外が直接トリガーされ、スタックはレイヤーごとに例外が発生したことをユーザーに返します。シンボルの値に関連するコードはありません。 try_block に記録されるため、多くの人は、より詳細なコードを例外で作成し、人間化された出力を行います

いいねを押す +0
黄舟

ipython を使用して pdb を開くと、どの行にエラーがあるかを報告できます。

リーリー
いいねを押す +0
为情所困

pdb

次のコードを追加します:

リーリー

次のように実行します:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート