Python重新访问/重新匹配异常

2024-05-16 07:13:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道在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子句中的加薪触发final except语句。

实际上,我打印的不是任何东西,而是记录它,如果这是我不期望的错误消息,我想记录更多。但是,除此之外,此附加日志记录将包含在最终版本中。

我相信一个解决方案是,如果函数没有轻轻关闭,那么它将在final except和else子句中调用。但这似乎没有必要。


Tags: 语言closeas记录elsesomethingexfinal
3条回答

根据pythontutorial,每个try语句中只有一个捕获异常。 您可以在教程中找到非常简单的示例,该示例还将向您展示如何正确使用错误格式。

不管怎样,为什么你真的需要第二个?你能提供更多的细节吗?

只调用try块中的单个except子句。如果希望异常被捕获得更高,则需要使用嵌套的try块。

写2个试试…除了这样的方块:

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

相关问题 更多 >