次のようなコードがあるとします:
ここで、例外が発生したときに例外が発生する前の各変数の値を取得したい、つまり a=1, b=0 のような結果を取得したいとします。
inspect.currentframe
この Python は積極的に実装できないはずです。そのようなメソッドがある場合、多層呼び出し中に例外が発生し、対応するデータが層ごとに記録されて返され、メモリの問題が発生する可能性があります。 ; そして、例外が発生する前に、仮想マシンは問題があることを認識しません。これは、i_pmod 関数で実装された、上記のゼロによる除算例外が実行されているようなものです。 PyIntobject のコードでは、除数が 0 であると判断され、例外が直接トリガーされ、スタックはレイヤーごとに例外が発生したことをユーザーに返します。シンボルの値に関連するコードはありません。 try_block に記録されるため、多くの人は、より詳細なコードを例外で作成し、人間化された出力を行います。
ipython を使用して pdb を開くと、どの行にエラーがあるかを報告できます。
pdb
次のコードを追加します:
次のように実行します:
リーリーinspect.currentframe
この Python は積極的に実装できないはずです。そのようなメソッドがある場合、多層呼び出し中に例外が発生し、対応するデータが層ごとに記録されて返され、メモリの問題が発生する可能性があります。 ; そして、例外が発生する前に、仮想マシンは問題があることを認識しません。これは、i_pmod 関数で実装された、上記のゼロによる除算例外が実行されているようなものです。 PyIntobject のコードでは、除数が 0 であると判断され、例外が直接トリガーされ、スタックはレイヤーごとに例外が発生したことをユーザーに返します。シンボルの値に関連するコードはありません。 try_block に記録されるため、多くの人は、より詳細なコードを例外で作成し、人間化された出力を行います。
ipython を使用して pdb を開くと、どの行にエラーがあるかを報告できます。
リーリーpdb
次のコードを追加します:
リーリー次のように実行します:
リーリー