7
は私がキャッチし、のような何かをせずにプログラムをクラッシュさせるでしょう例外(および対応するスタックトレース)ダンプすることができます:Pythonでtry/exceptなしでプログラムの先頭に例外を返す方法に反応する方法はありますか?
try:
# whole program
except Execption as e:
dump(e)
raise
いつか外部ライブラリのクラッシュを、と私は死ぬのPythonに反応したいとその理由をログに記録します。例外をプログラムがクラッシュさせないようにしたいのではなく、単にデバッグ情報が必要です。以下のような
何か:
signals.register('dying', callback)
def callback(context):
# dumping the exception and
# stack trace from here
はあっても可能ですか?
import sys
def myexcepthook(type, value, tb):
dump(type, value, tb)
sys.excepthook = myexcepthook
このはstderr
にトレースバックを出力しデフォルトのフックを、置き換え:sys.excepthook()
functionを登録することにより、
私は今そんなにあなたを愛しています。 –
ようこそ。 :-D –
私はPyObject_CallObject()で関数を呼び出すことはできますが(C++から)、意図的に間違った数のパラメータを送ると、nullを返します。このフックを使用して値をスクリプトに戻すにはどうすればよいですか? – Qwerty