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类,必须主动触发