Python在嵌套try中引发异常
我在一个try块里有一个嵌套的try/except结构,我想在出现错误时抛出这个错误,然后退出这个方法,但它还是继续执行。
try:
#stuff
try:
#do some stuff
except:
raise CustomException('debug info')
#do some more stuff
except CustomException:
#stuff
#do even more stuff
return stuff
目前,在抛出CustomException(第5行)之后,它会跳到except(第7行),然后继续执行,最后还是会返回。我希望在抛出错误时就停止执行,而不是被except捕获。如果在“#做一些其他事情”里发生CustomException,还是需要捕获这个错误并继续执行。
2 个回答
2
你觉得把try-except的结构改成下面这样怎么样?
try:
#do some stuff
except:
raise CustomException('debug info')
try:
#do some more stuff
except CustomException:
#stuff
#do even more stuff
return stuff
1
简单地写 raise
就会重新抛出之前捕获到的错误。
try:
#stuff
try:
#do some stuff
except:
raise CustomException('debug info')
#do some more stuff
except CustomException:
#stuff
raise ## KM: This re-raise the exception
## KM: This wont be executed if CustomException('debug info') was raised
#do even more stuff
return stuff