Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中是否有内置(或第三方)函数来捕获上下文中的异常?_Python - Fatal编程技术网

Python中是否有内置(或第三方)函数来捕获上下文中的异常?

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 如果

Python中是否有函数,例如get_exception,因此我可以这样做:

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的内置异常列表及其描述可在中找到。

注意:通常自定义库都有注释来描述它们引发的自定义异常。

您确定要捕获所有内容吗?甚至
系统退出
键盘中断
?大多数情况下,即使是除异常之外的
也太宽泛了。你确定你真的想抓住一切吗?甚至
系统退出
键盘中断
?大多数情况下,即使是除异常之外的
也过于宽泛。