Python 内建异常
以下是Python中可用的标准异常列表:
序号 | 异常名称和描述 |
---|---|
1 | Exception 所有异常的基类 |
2 | StopIteration 当迭代器的next()方法指向空对象时引发 |
3 | SystemExit 由sys.exit()函数引发 |
4 | StandardError 除StopIteration和SystemExit外的所有内置异常的基类 |
5 | ArithmeticError 所有数学计算错误的基类异常 |
6 | OverflowError 当计算超过数值类型的最大限制时引发 |
7 | FloatingPointError 当浮点计算失败时引发。 |
8 | ZeroDivisonError 当所有数值类型发生零除或取模运算时引发。 |
9 | AssertionError 在Assert语句失败时引发。 |
10 | AttributeError 在属性引用或赋值失败时引发。 |
11 | EOFError 当没有从raw_input()或input()函数获得输入且达到文件末尾时引发。 |
12 | ImportError 在导入语句失败时引发。 |
13 | KeyboardInterrupt 当用户中断程序执行时引发,通常是通过按下Ctrl+C。 |
14 | LookupError 用于所有查找错误的基类。 |
15 | IndexError 在序列中找不到索引时引发。 |
16 | KeyError 在字典中找不到指定的键时引发。 |
17 | NameError 在本地或全局命名空间中找不到标识符时引发。 |
18 | UnboundLocalError 在函数或方法中尝试访问一个局部变量但未给其赋值时引发。 |
19 | EnvironmentError 所有在Python环境之外发生的异常的基类。 |
20 | IOError 当输入/输出操作失败时引发,例如打印语句或open()函数尝试打开不存在的文件时。 |
21 | OSError 发生操作系统相关错误时引发的异常。 |
22 | SyntaxError 在Python语法出错时引发的异常。 |
23 | IndentationError 缩进格式不正确时引发的异常。 |
24 | SystemError 解释器发现内部问题时引发的异常,但遇到此错误时Python解释器不会退出。 |
25 | SystemExit 使用sys.exit()函数退出Python解释器时引发的异常。如果代码中未处理,将导致解释器退出。 |
26 | TypeError 尝试对指定的数据类型进行无效操作或函数时引发的异常。 |
27 | ValueError 当数据类型的内置函数具有有效类型的参数,但参数指定的值无效时引发。 |
28 | RuntimeError 当生成的错误不属于任何类别时引发。 |
29 | NotImplementedError 当需要在继承类中实际实现的抽象方法未被实现时引发。 |
下面是一些标准异常的示例:
索引错误
在尝试访问无效索引处的项目时显示。
numbers=[10,20,30,40]
for n in range(5):
print (numbers[n])
它将产生以下的 输出 −
10
20
30
40
Traceback (most recent call last):
print (numbers[n])
IndexError: list index out of range
模块未找到错误
当模块找不到时显示此错误。
import notamodule
Traceback (most recent call last):
import notamodule
ModuleNotFoundError: No module named 'notamodule'
键错误
发生于字典键未找到。
D1={'1':"aa", '2':"bb", '3':"cc"}
print ( D1['4'])
Traceback (most recent call last):
D1['4']
KeyError: '4'
ImportError(导入错误)
当指定的函数无法导入时显示该错误。
from math import cube
Traceback (most recent call last):
from math import cube
ImportError: cannot import name 'cube'
StopIteration
当迭代器流耗尽后调用next()函数时会出现此错误。
.it=iter([1,2,3])
next(it)
next(it)
next(it)
next(it)
Traceback (most recent call last):
next(it)
StopIteration
类型错误
当运算符或函数被应用到不合适的类型的对象时显示。
print ('2'+2)
Traceback (most recent call last):
'2'+2
TypeError: must be str, not int
值错误
当函数的参数类型不适当时显示此信息。
print (int('xyz'))
Traceback (most recent call last):
int('xyz')
ValueError: invalid literal for int() with base 10: 'xyz'
名称错误
当找不到对象时会遇到这个错误。
print (age)
Traceback (most recent call last):
age
NameError: name 'age' is not defined
ZeroDivisionError
当除法中的第二个操作数为零时显示此错误。
x=100/0
Traceback (most recent call last):
x=100/0
ZeroDivisionError: division by zero
KeyboardInterrupt
当用户在程序执行期间按下中断键通常是Control-C。
name=input('enter your name')
enter your name^c
Traceback (most recent call last):
name=input('enter your name')
KeyboardInterrupt