【发布时间】:2011-06-21 22:40:23
【问题描述】:
我知道如何捕获异常并打印它们返回的消息:
class SelfDefinedException(Exception): pass
try:
message = "Hello World!"
raise SelfDefinedException(message)
except MyDefinedException, e:
print "MyDefinedException", e
到目前为止效果很好。
但我如何才能在“finally”子句中捕获并打印消息?
class SelfDefinedException(Exception): pass
try:
message = "Hello World!"
raise SelfDefinedException(message)
except MyDefinedException, e:
print "MyDefinedException", e
finally:
# What goes here? So I can see what went wrong?
从我了解的几个答案中,这是不可能的。这样做可以吗?
class SelfDefinedException(Exception): pass
try:
message = "Hello World!"
raise SelfDefinedException(message)
except MyDefinedException, e:
print "MyDefinedException", e
except Exception, e:
# Hopefully catches all messages except for the one of MyDefinedException
print "Unexpected Exception raised:", e
【问题讨论】:
-
为什么要这样做?除了条款还不够好吗?
-
@Winston,我实现了对自己引发的异常的处理,但我想知道是否以某种方式引发了另一个我没想到的异常。查看我的编辑。
-
是的,如果您想捕获所有其他异常,只需使用更多的 except 子句继续列出它们。 see documentation
标签: python exception-handling try-catch-finally