1.错误和异常:错误是可以人为避免的问题,异常是在逻辑语法正确的前提下,出现的问题。python中,异常是一个类,可以在异常处理时使用。
2.异常有多种分类。
3.python异常处理模块的全部语法是:
try:
尝试实现某个操作,
如果没出现异常,任务就可以完成
如果出现异常,将异常从当前代码块扔出去尝试解决异常
except 异常类型1:
解决方案1:用于尝试在此处处理异常解决问题
except 异常类型2:
解决方案2:用于尝试在此处处理异常解决问题
except (异常类型1,异常类型2...)
解决方案:针对多个异常使用相同的处理方式
excpet:
解决方案:所有异常的解决方案
else:
如果没有出现任何异常,将会执行此处代码
finally:
管你有没有异常都要执行的代码
执行流程是:执行try语句块,如果出现异常,则在except语句中查找对应异常并处理;如果没有出现异常,则执行else语句块。最后,不管有没有异常都要执行finally语句块。
注1:除except(最少一个)以外,else和finally可选
注2:在异常类继承关系中,越是子类的异常,越往前放。越是父类的异常,越要往后放
注3:在处理异常的时候,一旦捕获到一个异常,则不再继续往下查看,直接进行下一个代码。即有finally则执行finally语句块,否则就执行下一个大的语句
注4:所有异常都是继承自Exception,写上下面这句话,任何异常都会可以拦截 。而且,下面这句话一定是最后一个Exception
except Exception as e:
print(e)
4.用户手动引发异常:用户希望自己引发一个异常的时候,可以使用 raise 关键字来引发异常
5.自定义异常:一般用户自己手动抛出异常时,推荐抛出自己定义的异常,这样可以自己扩充异常内容。如果抛出的异常处理没有单独在except中写到,则被父类异常捕获。注:自定义异常必须是系统异常的子类。
注:关于自定义异常:在自定义异常的时候,一般包含以下内容: – 自定义发生异常的异常代码 – 自定义发生异常之后的问题提示 – 自定义发生异常的行数
6.使用Traceback具体定位异常:注:使用traceback,要先import traceback
except Exception as e:
traceback.print_exc()
注:本文是本人根据北京图灵学院的python课程自己整理的笔记哒,转载请注明出处哈~