python try...exception 笔记

1,异常如果不被获取,它会一直往上抛,最后会被python解释器捕获,打印出错误信息,然后程序退出

2,要想程序继续执行,需要捕获异常

3,子函数里的异常会可以被上级捕获,异常可以 return 给上级

4,如果子程序没有捕捉异常,抛到上一级,直接进入上一级的异常,也就是上一级引用子程序后的代码不会再执行;如果子程序捕获,则上一级相当于没错继续执行

子程序捕获异常:

python try...exception 笔记

parent()继续执行,返回了a 的值

python try...exception 笔记

except里的return会正常返回(实际返回什么就看自己怎么定义):

python try...exception 笔记

结果:

python try...exception 笔记

捕获:

python try...exception 笔记

结果:

python try...exception 笔记

4,python里的异常可以分为很多种:ValueError,ZeroDivisionError 等,继承自BaseException

5,抛出错误,可以用raise, 后面可以带参数,也可以不带(原样输出)

python try...exception 笔记

6,如果还有代码要执行,可以加 fainally: 一定会执行; else:如果没有异常执行