Wiem, że jeśli chcę ponownie zgłosić wyjątek, po prostu używam raisebez argumentów w odpowiednim exceptbloku. Ale biorąc pod uwagę zagnieżdżone wyrażenie, takie jak
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
jak mogę ponownie podbić SomeErrorbez przerywania śledzenia stosu? raisesam w tym przypadku ponownie podniósłby nowsze AlsoFailsError. Albo jak mogę zmienić kod, aby uniknąć tego problemu?
plan_Binną funkcję, która zwracaTruepo sukcesie iFalsepo wyjątku? Wtedy zewnętrznyexceptblok mógłby być po prostuif not try_plan_B(): raise