Python 中的所有实例都必须是派生自BaseException的类的实例。不通过子类化相关的两个异常类永远不会等效,即使它们具有相同的名称。内置异常可以由解释器或内置函数生成。
Python 中有几个内置异常,当发生错误时会引发这些异常。可以使用local()内置函数查看这些内置异常,如下所示:
locals()[‘builtins’]
这将返回内置异常、函数和属性的字典。
基类
以下异常主要用作其他异常的基类。
异常 BaseException
这是所有内置异常的基类。它并不意味着由用户定义的类直接继承。对于用户定义的类,使用 Exception。此类负责使用传递的参数使用 str() 创建异常的字符串表示形式。如果没有参数,则返回空字符串。
args : args 是提供给异常构造函数的参数元组。
with_traceback(tb) :该方法通常用于异常处理。此方法将 tb 设置为异常的新回溯并返回异常对象。
代码 :
尝试:
…
除了一些异常:
tb = sys.exc_info()[2]
引发 OtherException(…).with_traceback(tb)
异常 Exception
这是所有内置非系统退出异常的基类。所有用户定义的异常也应该从此类派生。
异常 ArithmeticError
此类是因各种算术错误引发的内置异常的基类,例如:
溢出错误
零除法错误
浮点错误
例子 :
try:
a = 10/0
print (a)
except ArithmeticError:
print ("This statement is raising an arithmetic exception.")
else:
print ("Success.")
输出 :
该语句引发算术异常。
异常 BufferError
当无法执行缓冲区相关操作时会引发此异常。
异常 LookupError
这是当映射或序列上使用的键或索引无效或未找到时引发的异常的基类。提出的例外情况是:
按键错误
索引错误
例子 :
try:
a = [1, 2, 3]
print (a[3])
except LookupError:
print ("Index out of bound error.")
else:
print ("Success")
输出 :
索引越界错误。
具体例外情况
以下异常是通常引发的异常。