Python中是否有内置(或第三方)函数来捕获上下文中的异常?
Python中是否有函数,例如get_exception,因此我可以这样做:Python中是否有内置(或第三方)函数来捕获上下文中的异常?,python,Python,Python中是否有函数,例如get_exception,因此我可以这样做: try: can_raise_anything() except: ex = *get_exception()* print('caught something: ' + str(ex)) 我知道在Python3中,我应该使用除BaseException之外的作为ex:来完成任务。我只是想看看是否有一个函数可以做到这一点。除了BaseException之外,因为e也适用于Python 2 如果
try:
can_raise_anything()
except:
ex = *get_exception()*
print('caught something: ' + str(ex))
我知道在Python3中,我应该使用除BaseException之外的
作为ex:
来完成任务。我只是想看看是否有一个函数可以做到这一点。除了BaseException之外,因为e
也适用于Python 2
如果出于某种原因确实要使用函数,
sys.exc\u info()
将返回一个元组,其第二个元素是异常对象。(第一个元素是异常类型,第三个元素是回溯。)除了BaseException之外,e也适用于Python 2
如果出于某种原因确实要使用函数,sys.exc\u info()
将返回一个元组,其第二个元素是异常对象。(第一个元素是异常类型,第三个元素是回溯。)除
之外的块可以接收一个附加部分,如下所示:
try:
stuff()
except Exception as e:
print e
一些库(包括内置库)提供特定的异常
类型,可以根据发现的错误类型更好地做出反应。结合这一事实,除了一个try
block中的块之外,你可以拥有任意多个,你可以制作一个非常安全的应用程序。复杂的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
示例中使用的内置异常:
- TypeError:当变量的类型意外时(例如添加字符串和数字)
- NameError:使用的变量不存在
- 算术错误:一般数学错误
- 异常:任何类型的错误,可用于除
s之外的简单,或仅用于“其他所有内容”
Python2.x的内置异常列表及其描述可在中找到。
注意:通常自定义库会有注释来描述它们引发的自定义异常。除
之外的块会收到一个附加部分,如下所示:
try:
stuff()
except Exception as e:
print e
一些库(包括内置库)提供特定的异常
类型,可以根据发现的错误类型更好地做出反应。结合这一事实,除了一个try
block中的块之外,你可以拥有任意多个,你可以制作一个非常安全的应用程序。复杂的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
示例中使用的内置异常:
- TypeError:当变量的类型意外时(例如添加字符串和数字)
- NameError:使用的变量不存在
- 算术错误:一般数学错误
- 异常:任何类型的错误,可用于除
s之外的简单,或仅用于“其他所有内容”
Python2.x的内置异常列表及其描述可在中找到。
注意:通常自定义库都有注释来描述它们引发的自定义异常。您确定要捕获所有内容吗?甚至系统退出
和键盘中断
?大多数情况下,即使是除异常之外的也太宽泛了。你确定你真的想抓住一切吗?甚至系统退出
和键盘中断
?大多数情况下,即使是除异常之外的也过于宽泛。