一. 异常
程序在运行过程中的报错就叫异常
二. 异常捕获
1. 使用异常捕获的场景
在知道某个位置可能会出现异常,但开发者无法控制时使用
2. 捕获异常
①:捕获任何异常
"""
try:
代码块一(可能出现异常的代码)
except:
代码块二(对异常进行处理)
finally:
代码块三
其他语句
"""
- 先执行代码块1,如果异常,直接执行代码块2,依次往后执行;若代码块1没有异常,不执行代码块2,往后执行
②:捕获针对异常
"""
try:
代码块一(可能出现异常的代码)
except 异常类型:
代码块二(对异常进行处理)
其他语句
"""
- 先执行代码块1,如果异常,检查该异常是否和except后的异常类型是否一致若一致,执行代码块2,依次往后执行;若不一致,程序崩溃.
③:捕获多个异常一(相同处理)
"""
try:
代码块一(可能出现异常的代码)
except (异常类型1, 异常类型2...):
代码块二(对异常进行处理)
其他语句
"""
④:捕获多个异常一(不同处理)
"""
try:
代码块一(可能出现异常的代码)
except (异常类型1):
代码块二(对异常进行处理)
except (异常类型2):
代码块三(对异常进行处理)
except (异常类型3):
代码块四(对异常进行处理)
...
其他代码
"""
三. 关键字finally
在以上四个捕获异常的方法中都可以在最后加上finally关键字,它的作用是:不管try中的代码出现任何情况,finally后的代码都会执行
try:
print({'name': 'an', 'age': 29}['gender'])
print('hello'[19])
print(max([10, 'asd', True]))
except IndexError:
print('出现异常')
finally:
print('写遗书')
四. 抛出异常
raise 异常类型