[英]Is there a buildin(or 3rd party) function in Python to get the exception caught in context?
Python中是否有一个函数,例如get_exception,所以我可以这样做:
try:
can_raise_anything()
except:
ex = *get_exception()*
print('caught something: ' + str(ex))
我知道在 Python 3 中,我应该使用except BaseException as ex:
来完成任务。 我只是想知道是否有一个函数可以做到这一点。
except BaseException as e
也适用于 Python 2。
如果出于某种原因你真的想使用一个函数, sys.exc_info()
将返回一个元组,它的第二个元素是异常对象。 (第一个元素是异常类型,第三个元素是回溯。)
except
块可以接收一个附加部分,如下所示:
try:
stuff()
except Exception as e:
print e
一些库(包括内置库)提供了特定的Exception
类型,可用于根据发现的错误类型做出更好的反应。 你可以有很多的事实结合这except
一个块try
块,你可以做一个非常故障安全应用程序。 复杂的try-except
块示例:
try:
result = a / b
except TypeError as e:
print "Woops! a and b must be numbers!"
result = int(a) / int(b)
print e
except NameError as e:
print "A variable used doesn't exist!"
print e
except ArithmeticError as e:
print "It seems you've gone past infinity, under atomicity or divided by zero!"
print e
except Exception as e:
print "Something REALLY unexpected happened!"
print e
示例中使用的内置异常:
except
s 或仅用于“其他一切”可以在http://docs.python.org/2/library/exceptions.html找到 Python 2.x 的内置异常列表及其描述。 注意:通常自定义库有描述它们引发的自定义异常的注释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.