Saya tahu bahwa jika saya ingin memunculkan kembali pengecualian, saya menggunakan sederhana raise
tanpa argumen di except
blok masing-masing . Tapi diberi ekspresi bersarang seperti
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
bagaimana cara menaikkan kembali SomeError
tanpa merusak jejak tumpukan? raise
sendiri akan dalam hal ini mengangkat kembali yang lebih baru AlsoFailsError
. Atau bagaimana saya dapat mengubah kode saya untuk menghindari masalah ini?
plan_B
fungsi lain yang mengembalikanTrue
kesuksesan, danFalse
pengecualian? Makaexcept
blok luar mungkin sajaif not try_plan_B(): raise