目录
今日总结
一、异常捕获
1. 异常
当程序出现了异常,程序直接结束
print('=====')
# print('abc'[5])
print('-----')
print('+++++')
2. 异常捕获
异常捕获就是让程序在出现异常的时候不崩溃还可以接着往后执行
语法1:
捕获所有类型的异常
try: 代码段1(需要捕获异常的代码) except: 代码段2(捕获到异常后会执行的代码) finally: 代码段 其他代码
执行过程:
先执行代码段1,如果代码段1在执行过程中出现了异常,程序不会奔溃,直接执行代码段2,执行完代码段2才继续执行后续其他代码。
try: print('====') print('abc'[5]) print('++++') except: print('前面出现了异常')
# 练习:提示用户输入年龄,请求将输入的年龄值转换成整数。如果年龄输入有误,给出 '年龄必须是整数!' 的提示
try:
age = int(input('请输入年龄:'))
# print(age + 'acb')
except:
print('年龄必须是整数!')
3. 异常捕获其他语法
语法2:
捕获指定的一种异常
try: 代码段1(需要捕获异常的代码) except 异常类型: 代码段2(捕获到异常后会执行的代码) finally: 代码段 其他代码
语法3:
同时捕获多种异常,针对不同的异常做相同的处理
try: 代码段1(需要捕获异常的代码) except (异常类型1, 异常类型2, 异常类型3,...): 代码段2(捕获到异常后会执行的代码) finally: 代码段 其他代码
语法4:
同时捕获多种异常,针对不同的异常做不一样的处理
try: 代码段1(需要捕获异常的代码) except 异常类型1: 代码段11 except 异常类型2: 代码段22 except 异常类型3: 代码段33 ... finally: 代码段 其他代码
print('abc'[5]) # IndexError
age = int(input('请输入年龄:')) # ValueError
try:
age = int(input('请输入年龄:'))
print(age + 'acb') # TypeError
except ValueError:
print('输入有误,年龄必须是整数!')
4. finally
finally后面的代码段不管被捕获的代码发生了什么都会执行(就算try后面的代码出现异常没有被捕获导致程序奔溃,finally后面的代码也会执行)
try:
print({
'a': 10}['b']