PythonReraise/recatch异常怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (88)

我想知道在python中是否可以在一个除块之外的块中引发一个异常,然后在一个以后的除了块中捕获它。我相信其他一些语言默认会这样做。

我的代码:

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来触发final语句。

实际上我不打印任何东西,只记录它,我想记录更多的情况,这是我不期望的错误消息。 但是,这个额外的日志记录将包含在最终的日志中。我相信一种解决办法是,如果函数不轻轻地关闭,就会产生一个函数,这在Final以外的子句中被调用,在Other子句中被调用。但这似乎没有必要。

提问于
用户回答回答于

按python计算tutorial每个TRY语句有一个也是唯一一个捕获异常。你可以在教程中找到非常简单的示例,它也将向你展示如何正确使用错误格式设置。

用户回答回答于

试一试 :

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

扫码关注云+社区

领取腾讯云代金券