一、异常处理基本知识:
1、代码异常的特性:
python程序一旦发生错误,就从错误的位置停下来了,不会执行后面的内容。
二、异常处理语句(try except else finally):
- 1、try 我们需要处理的代码块,try中一旦出现异常代码,异常代码后面的代码不会执行,直接跳转到except语句
- 判断
- 2、except 后面跟一个 错误类型,当代码错误类型与其相符合时,执行except语句。可以通过 “except 错误类型 as
- 变量” 语句赋值 变量。
- 3、except 可以多个并列并且没有次数限制。
- 4、万能报错处理 : except Exception : ;常见报错集合 except BaseException:
- 单独处理异常类型通常放在万能异常之前。
- 5、finally 不管代码是否异常 都会执行,常用函数中与return并列的情况,优先执行finally语句,然后return。
1、简单的异常处理:
try:
a 未定义的变量,NameError
print('我不会执行') 该代码不会执行
except NameError: try语句代码异常 且 代码错误符合时执行
print('语法错误')
else:
print('try里面代码 没有错误时执行。')
print(22) print('不会执行')不会执行,跳转到下面继续执行
结果:
语法错误
22
2、综合的异常处理:
(1)代码:可以用as 将错误赋值给变量。
print('开始执行!')
try:
a
1/0
[][3] = 0
print('不会执行')
except NameError as error: # except类似于if else ,一旦有异常条件满足,不会执行其他条件。
print('未定义变量错误!',error)
except Exception:
print('万能异常处理方式!')
else:
print('try代码没有问题')
finally:
print('是否异常我都会执行》》》》')
print('异常处理后代码继续执行')
结果:
开始执行!
未定义变量错误! name 'a' is not defined
是否异常我都会执行》》》》
异常处理后代码继续执行
(2)执行过程分析:
3、finally在函数中的作用:
def func():
try:
f = open('file.txt','r')
a # 错误
return True
except :
return False # 执行return之前,要将finally语句中的内容执行一遍。
finally:
print('执行finally语句了')
f.close()
print(func())
结果:
执行finally语句了
False
三、常见的错误类型: