例外を発生させずに Python のスタックトレースを表示する
2023-09-20 09:45:47
質問
私のクラスのインスタンス変数の1つで何かが起こっています。私はその変数をプロパティにしたいのですが、それがアクセスされるたびに、その時点に至るすべてのコードのスタックトレースをプリントアウトしたいのです。例外が発生していないときにスタックトレースをプリントアウトするにはどうしたらいいのでしょうか?例外が発生した場合、次のようなことができるのは知っています。
traceback.format_tb(sys.exc_info()[2])
.
また、最初の数レベルはおそらくそれほど面白いものではないので、最後の3-4レベルのみを印刷することも有用でしょう。
どのように解決するのですか?
>>> def f():
... def g():
... traceback.print_stack()
... g()
...
>>> f()
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in f
File "<stdin>", line 3, in g
編集
extract_stack
で、スライスを取る(例えば
stack[5:]
で最初の5レベルを除外します)、そして
format_list
を使用して、印刷用のスタックトレースを取得します (
'\n'.join(traceback.format_list(...))
)
関連
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] 改行やスペースを入れずに印刷する方法
-
[解決済み] スタックトレースを文字列に変換するにはどうすればよいですか?
-
[解決済み] Pythonで標準エラー出力するには?
-
[解決済み] Javaで現在のスタックトレースを取得するにはどうすればよいですか?
-
[解決済み] Pythonで例外を表示するには?
-
[解決済み] スタックトレースとは何ですか、またアプリケーションのエラーをデバッグするためにスタックトレースをどのように使用できますか?
-
[解決済み】例外をスローしたときにJavaScriptのスタックトレースを取得するにはどうすればよいですか?
-
[解決済み】例外の説明と例外を発生させたスタックトレースを文字列で取得する。
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] Python Empty Generator 関数
-
[解決済み] Django filter queryset __in for *every* item in list
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?