python
にいくつかの例外処理コードがあります。最初のコードは2番目の例外の "スーパーセット"です。Pythonですぐにエラーを再発生して再キャッチ
I.e.次のコードは、私が何をする必要があるかまとめたもの(と正常に動作します)
try:
normal_execution_path()
except FirstError:
handle_first_error()
handle_second_error()
except SecondError:
handle_second_error()
しかし、それはきれいで読みやすいままにするコードのための独立した機能に抽象化のすべてに私を必要とします。 (SecondError
は、それがこのブロック内で発生した場合、再catched取得していません)
try:
normal_execution_path()
except FirstError:
handle_first_error()
raise SecondError
except SecondError:
handle_second_error()
をしかし、これは動作するようには思えません。私のようないくつかの簡単な構文のためにホッピングされました。しかし、その方向に何かできるか?あなたは手動で処理される第2のエラーをスローする場合
追加のハンドラを指定しない限りできません。エラーが 'FirstError'または' SecondError'のインスタンスである場合に分岐する方が良いでしょう。 –