であれば、私はありませんいくつかのコードを持っている:オブジェクトがExceptionクラス
try:
result = func()
except StandardError as e:
result = e
にはどうすればresult
は例外が含まれているかどうかを確認することができますか?
isinstance(result, Exception)
を使用すると、例外がクラスであり、インスタンスではありません。 type(ValueError)
は<type 'type'>
となる。
---編集---
まあ愚かでした。上記のコードは、私がfunc()
をどのように使っていたかを正確に示したものですが、func()
のテストはraise ValueError
ではなくreturn ValueError
でした。前者はクラスを返し、後者はインスタンスを返します。だから問題は説明されていませんでした。
ええと...あなたが実際に ''でisinstance(結果、例外を)試してみましたか? 'e'は' StandardError'クラスではなく 'StandardError'の__instance__なので、私のために働きます。 –
なぜあなたのコードはそうしていますか? – user2357112
例外ハンドラが実行された場合、 'e'は' StandardError'のインスタンスになります...あなたの最後の段落が何を意味するのか分かりません... – mgilson