예외를 다시 발생 raise
시키려면 각 except
블록 에서 인수없이 간단히 사용한다는 것을 알고 있습니다. 그러나 다음과 같은 중첩식이 주어지면
try:
something()
except SomeError as e:
try:
plan_B()
except AlsoFailsError:
raise e # I'd like to raise the SomeError as if plan_B()
# didn't raise the AlsoFailsError
SomeError
스택 추적을 끊지 않고 어떻게 다시 올릴 수 있습니까? raise
이 경우에만 더 최근의 AlsoFailsError
. 또는이 문제를 피하기 위해 코드를 리팩토링하려면 어떻게해야합니까?
plan_B
를 반환True
하는 다른 함수를 넣어 보셨습니까False
? 그러면 외부except
블록이 될 수 있습니다if not try_plan_B(): raise