1 错误和异常的概念
错误:1)语法错误。代码不符合解释器或编译器语法,在执行前可以修改
异常:执行过程中出现问题导致出现没法执行
出现异常的原因:
1)程序出现逻辑或者算法问题
2)运行过程中计算机错误(内存不够等)
异常的两个步骤:1 异常产生,检查到错误且解释器认为是异常,抛出异常
2 常见错误类型
1)IOError:打开一个不存在的文件(f = open('test.txt'))
2) ValueError: 强制转换错误(输入a=int('a100'),会出现该错误,表示强制类型转换时类型无效)
3) NameError: 变量未定义就被使用
4) SyntaxError: 当输入if a,回车,显示错误SyntaxError;当输入if a: print a,显示NameError,表示变量a未定义
5)ZeroDivisionError: 除0错误
3 使用try-except对异常处理
格式:try:
try_suite
exception_block
捕获多个异常的格式:try:
try_suite
exception_block1
except Exception2 [e]:
exception_block2
except ExceptionN [e]:
exception_blockN
1)try用来捕获try_suite里的错误,且将错误交给except处理
2)except用来处理异常,如果处理异常和设置捕获异常一致,就使用exception_block处理异常
否则使用解释器处理
4 try-finally语句:为异常处理事件提供清理机制,用来关闭文件或释放系统资源
格式:try:
try_suite
do_finally
1) 如果try没有捕获错误,代码执行do_finally语句
2)如果try捕获到错误,程序先执行do_finally,再将捕获到的错误交给Python解释器处理
5 try-except-finally使用
1)若try没有捕获异常,执行完try语句后,执行finally语句
2)若try捕获到异常,执行except语句后再执行finally语句
6 with-as语句
格式:with context [as var]:
with_suite
1) with语句用来代替try-except-finally语句,使代码更加简洁
2)context表达式返回一个对象
3)var用来保存context返回对象,单个返回值或元组
4)with_suite使用var变量来对context返回对象进行操作
7 raise语句用于主动抛出异常
格式raise [exception[ , args]]
exception:异常类
args:字符串,描述异常类的元组
8 assert语句:断言语句,检测表达式是否为真,如果为假,引发AssertionError错误
格式:assert exception [ , args]
exception:表达式
args:判断条件的描述信息
9 Python标准异常,即内建异常
10 自定义异常:必须继承Exception类,必须主动触发