我想捕捉一个特定的异常并相应地处理它-然后我想继续并执行其他异常必须执行的通用处理。在
来自C背景,我以前可以使用gotos来达到预期的效果。在
这就是我目前正在做的,而且效果很好:
try:
output_var = some_magical_function()
except IntegrityError as zde:
integrity_error_handling()
shared_exception_handling_function(zde) # could be error reporting
except SomeOtherException as soe:
shared_exception_handling_function(soe) # the same function as above
也就是说,有没有“Python式”的方式来做以下事情:
^{pr2}$注意:我知道finally子句-这不是用来整理(即关闭文件)的
Exception
类将匹配所有异常。。。在但听起来您希望final子句同时为
^{pr2}$IntegrityError
异常以及其他所有异常运行。所以你需要一个不同的结构,可能是这样:内部
try
…except
块上的raise
命令导致 捕获了要传递给外部块的异常。在您可以重新生成异常,并在嵌套设置的外部处理程序中处理一般情况:
非限定的
raise
语句重新引发当前异常,因此IntegrityError
异常再次被抛出,由AllExceptions
处理程序处理。在另一种方法是测试异常类型:
^{pr2}$相关问题 更多 >
编程相关推荐