Python基础学习系列:
程序运行时,若出现:
- 使用变量前未赋值
- 序列中使用不存在的索引值
- 除0
则会抛出异常,程序终止
9.1 处理异常
try:
代码块(可能出现错误语句)
except:
代码块(出现错误处理方式)
else:
代码块(没出错执行语句)
finally:
代码块(最后都会执行语句)
try
必须有except
或者finally
至少有一个
9.2 异常抛出
- 在函数中出现的异常并进行处理,则不会继续传播
- 若在异常出现处为处理,则继续向调用出传播,直到全局作用域
- 全局作用域未处理,则终止程序,显示异常信息
- 所有的异常信息都会被保存到异常对象中
- 异常传播是将异常对象抛给调用处
9.3 异常对象
异常类 | 含义 |
---|---|
ZeroDivisionError | 表示除0异常 |
NameError | 处理变量错误异常 |
IndexError | 索引异常 |
捕获异常对象
try:
代码块
except 异常类型:
# 加上异常类型,只捕获特定类型异常
代码块
except 异常类型:
pass
except Exception as 异常名:
# except后不加内容,捕获到所有异常
# Exception 是所有异常的父类
pass
finally:
#无论是否出现异常,该子句都会执行
pass
9.4 自定义异常对象
使用 raise
抛出异常
raise
异常类或异常实例(异常信息)
所有异常都必须是 Exception
class MyError(Exception):
pass