0

私はPythonで大きなバッチタイプのスクリプトを書いていますが、例外が発生したかどうかに関係なく、最後にクリーンアップを行う必要があります。これを行うには、メインプログラムをtryブロックに配置し、クリーンアップをfinallyブロックに配置するだけです。

これはうまくいくようですが、私の質問は、発生する可能性のある例外をどのように出力するかです。現在、それらを無視して、finallyブロックにジャンプします。

4

2 に答える 2

4

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
于 2011-08-31T23:51:10.563 に答える
3

トレースバックを使用できます。

何かのようなもの:

import traceback
try:
    foo
except:
    print(traceback.format_exc())
finally:
     cleanup
于 2011-08-31T23:38:26.247 に答える