私はPythonで大きなバッチタイプのスクリプトを書いていますが、例外が発生したかどうかに関係なく、最後にクリーンアップを行う必要があります。これを行うには、メインプログラムをtryブロックに配置し、クリーンアップをfinallyブロックに配置するだけです。
これはうまくいくようですが、私の質問は、発生する可能性のある例外をどのように出力するかです。現在、それらを無視して、finallyブロックにジャンプします。
私はPythonで大きなバッチタイプのスクリプトを書いていますが、例外が発生したかどうかに関係なく、最後にクリーンアップを行う必要があります。これを行うには、メインプログラムをtryブロックに配置し、クリーンアップをfinallyブロックに配置するだけです。
これはうまくいくようですが、私の質問は、発生する可能性のある例外をどのように出力するかです。現在、それらを無視して、finallyブロックにジャンプします。
try
例外ハンドラなしで/finally
ブロックを使用できるはずです。例外をキャッチしたり、トレースバックを抑制したりすることはありません。例外があるかどうかに関係なく、クリーンアップコードが実行されていることを確認してください。それがの要点ですfinally
。
次に例を示します。
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> try:
... print 'begin try'
... assert False
... print 'end try'
... finally:
... print 'finally'
...
begin try
finally
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
AssertionError
トレースバックを使用できます。
何かのようなもの:
import traceback
try:
foo
except:
print(traceback.format_exc())
finally:
cleanup