异常捕获
一、异常
- 程序报错又叫程序出现异常
- 程序会在出现异常的地方结束
二、异常捕获
- 让程序在出现异常时不崩溃,可以继续执行
- 什么时候捕获异常:
明知每段代码可能会出现异常,又没有必要或没有办法通过修改代码来避免异常
语法一:
try:
代码段1 (需要捕获异常的代码段)
except:
代码段2 (出现异常后才会执行的代码段)
执行过程:
先执行代码段1,如果没有出现异常,就不执行代码段2,直接执行后面的其它语句
如果出现异常,程序不会崩溃,会马上执行代码段2,执行完后再执行后面的其它语句
try:
age = int(input('请输入年龄:'))
except:
print('输入年龄有误!')
语法二:
try:
代码段1
except 异常类型:
代码段2 (出现指定异常后会执行的代码段)
try:
print([][0])
print(int(''))
except IndexError:
# except ValueError:
print('出现异常!')
print('end')
语法三:
try:
代码段1
except (异常类型1,异常类型2,...):
代码段2
语法四:
try:
代码段1
except 异常类型1:
代码段21
except 异常类型2:
代码段22
except 异常类型3:
代码段23
...
三、关键字 finally
- 最后挣扎一次
- 所有的try-except 结构后面都可以跟一个finally,不影响原来代码执行
- 不管前面发生什么都会执行
- 最后程序该崩溃还是要崩溃的,不崩溃的也不崩溃
try:
print([][0])
except ValueError:
print('出现异常!')
finally:
print('最后的挣扎!')
print('其它语句')
'''
最后的挣扎!
IndexError: list index out of range
'''