1. 异常的定义:
语法正确,程序运行时发生的错误称为异常。大多数异常系统没有处理,因此会打断程序的执行,中途退出。
因为ttt变量不存在,因此程序会发生异常,退出,后面的代码不会被执行。为了保证其中的错误不会影响
2. 异常处理语法
try:
需要被监控的代码块
except 异常1 [as 变量]:
异常1发生时,执行的代码except 异常2 [as 变量]:
异常2发生时,执行的代码
else:
异常没有发生时执行的代码
finally:
无论异常是否发生,此处代码都会执行
注意点:
1. try,except, else,finally 后面都有冒号,并注意缩进。
2. except 可以有多个,因此可以捕捉多个异常,其中只有一个可以执行。
3. else 和 finally 可以省略。else代表异常未发生时执行的代码,finally无论异常发生,都会执行。
4. as 变量 存在时,如果一场发生时,把异常的实例赋值给变量
示例:
执行结果
常见的异常:
Exception 所有异常的基类
AttributeError 特征引用或者赋值失败时引发的
IOError 试图打在不存在的文件(包括其他情况)
IndexError 使用序列中不存在的索引
KeyError 使用映射中不存在的键
NameError 找不到名字(变量)
SyntaxError 在代码为错误形式时引发
SystemExit 系统异常退出
ZeroDivisionError 除法,第二参数为0
TypeError 在内建操作或者函数应用与错误类型的对象时
ValueError 正确的类型对象,但是对象使用不合适的值
3. 抛出异常
raise 异常
4. 自定义异常
自定义异常,需要用户自定义类,并且需要继承 Exception 类,
示例:
运行结果: