python try...exception 笔记
1,异常如果不被获取,它会一直往上抛,最后会被python解释器捕获,打印出错误信息,然后程序退出
2,要想程序继续执行,需要捕获异常
3,子函数里的异常会可以被上级捕获,异常可以 return 给上级
4,如果子程序没有捕捉异常,抛到上一级,直接进入上一级的异常,也就是上一级引用子程序后的代码不会再执行;如果子程序捕获,则上一级相当于没错继续执行
子程序捕获异常:
parent()继续执行,返回了a 的值
except里的return会正常返回(实际返回什么就看自己怎么定义):
结果:
捕获:
结果:
4,python里的异常可以分为很多种:ValueError,ZeroDivisionError 等,继承自BaseException
5,抛出错误,可以用raise, 后面可以带参数,也可以不带(原样输出)
6,如果还有代码要执行,可以加 fainally: 一定会执行; else:如果没有异常执行