私の例では、カスタム例外クラスMyCustomException
があり、メインではa
を0に分割してZeroDivisionError
例外を発生させます。例外ブロックでは、私はZeroDivisionError
を捕まえてから、MyCustomException
をerr
に上げます。これにより、チェーンされた例外が発生します。自分自身に加えて、err
にある例外も発生します。例外ブロックから発生した例外チェーンを処理する方法
ここで、チェーンされた例外を捕捉する方法、またはチェーンされた例外がどのように機能するのですか? Pythonはexcept
ブロックで私のコードにMyCustomException
をキャッチすることはできません。
class MyCustomException(Exception):
pass
a=10
b=0
reuslt=None
try:
result=a/b
except ZeroDivisionError as err:
print("ZeroDivisionError -- ",err)
raise MyCustomException from err
except MyCustomException as e:
print("MyException",e) # unable to catch MyCustomException
私はそれを実行するときに私が手出力:except
句の
raise
を使用して
ZeroDivisionError -- division by zero
Traceback (most recent call last):
File "python", line 13, in <module>
MyCustomException