を使用してexcept
ステートメントの例外インスタンスを取得できます。しかし、try
の後のelse
ステートメントで簡単に同じことをする方法はないようです。より明確にするには、以下のコードを参照してください。Python - try-except-elseで例外を捕捉する簡単な方法
try:
raise Exception('Foo')
except ValueError as valueError:
print(valueError)
print('I can capture the exception instance with "as" keyword')
else: # Cannot use "as" here
print('Some exception other than ValueError')
print('How can I capture the exception in order to, e.g. print its message?')
は、他のすべてをキャッチし、あなただけのキャッチしません'例外'基本クラス?しかし、すべてをキャッチするのは一般に貧弱な習慣です。 – Carcigenicate
メインブロックにNO例外がスローされた場合、 'else'が実行されます。あなたは望むものを達成するために複数の 'except'ブロックを使うことができます。特に '例外を除いて:'は、一般的に悪い習慣です。 –
@YaroslavAdminありがとう!私はtry-except-elseがどのように動作するのか完全に理解していませんでした。ここで 'else'ステートメントを使用する理由はかなり微妙です。 – lyang