1

次に、Pythonでtry catchを使用すると、エラーをキャッチして、asキーワードを使用して変数に割り当てることができます。

try
  do something..
except IOError as e:
  do something with e..

ただし、エラーの種類を知らずに同じことを行おうとすると、Pythonは構文について不平を言います。

try
  do something..
except as e:
  do something with e..

デフォルトのエラーをキャッチして変数に割り当てる方法はありますか?

4

3 に答える 3

8

はいあります。すべての例外はクラスから派生しExceptionます。

したがって、次のことができます。

try:
    doSomething()
except Exception as e:
    doSomethingWithException(e)

一種のキャッチオールラインです。

于 2012-06-09T18:37:16.067 に答える
0

sys.exc_info() を使用することもできます。これにより、Python 2.x と Python 3.x の例外を同じコードで処理できます。

于 2012-06-09T18:54:53.130 に答える
0

従来の方法は次のとおりです。

try:
    do_whatever()
except Exception as e:
    handle_it()

このような広範な例外をキャッチすることはお勧めできませんが、処理できることがわかっている特定の例外をキャッチして、それ以外の例外をすべて伝播させることをお勧めします。

KeyboardInterrupt と SystemExit は Exception ではなく BaseException から継承することに注意してください。そのため、それらに対応することを期待していてもこれらはキャッチされませんが、トップレベルで処理する必要があるため、問題にはなりません。

于 2012-06-09T19:17:17.370 に答える