我想知道在python中是否可以在一个except块中引发异常,并在以后的except块中捕获它。我相信其他一些语言在默认情况下会这样做。
下面是它看起来的样子。
try:
something
except SpecificError as ex:
if str(ex) = "some error I am expecting"
print "close softly"
else:
raise
except Exception as ex:
print "did not close softly"
raise
我希望else子句中的raise触发最后的except语句。
实际上,除了记录之外,我没有打印任何东西,并且我希望在错误消息不是我所期望的情况下记录更多。但是,这个额外的日志记录将被包含在最终版本中,除了。
我认为一种解决方案是,如果一个函数没有柔和地关闭,就制作一个函数,这在最终的except和else子句中被调用。但这似乎没有必要。
发布于 2011-06-10 05:54:10
只调用try
块中的单个except
子句。如果您希望异常被捕获到更高的位置,那么您将需要使用嵌套的try
块。
发布于 2011-06-10 05:56:01
像这样写2个try...except代码块怎么样:
try:
try:
something
except SpecificError as ex:
if str(ex) == "some error I am expecting"
print "close softly"
else:
raise ex
except Exception as ex:
print "did not close softly"
raise ex
发布于 2011-06-10 05:59:29
根据python tutorial,每个try语句有且只有一个捕获的异常。你可以在教程中找到非常简单的例子,它也将向你展示如何正确地使用错误格式。
不管怎样,为什么你真的需要第二个呢?你能提供更多关于这方面的细节吗?
https://stackoverflow.com/questions/6299756
复制相似问题