异常传播
[TOC]
目录:
一、异常的传播
二、抛出的异常
一、异常的传播
一个出现在全局,一个出现在函数就两种可能
当在函数中出现异常时,如果在函数中对异常进行了处理,则异常不会再继续传播,
如果函数中没有对异常进行处理,则异常会继续向函数调用处传播,
如果函数调用处处理了异常,则不再传播,如果没有处理则继续向调用处传播
直到传递到全局作用域(主模块)如果依然没有处理,则程序终止,并且显示异常信息
def fn() :
print('Hello fn')
print(10/0)
def fn2():
print('Hello fn2')
fn()
def fn3():
print('Hello fn3')
fn2()
fn3()
二、抛出的异常
当程序运行过程中出现异常以后,所有的异常信息会被保存一个专门的异常对象中,
而异常传播时,实际上就是异常对象抛给了调用处
比如:
ZeroDivisionError 类的对象专门用来表示除0的异常
NameError 类的对象专门用来处理变量错误的异常
在 Python 为我们提供了多个异常对象
有很多很多一系列的错误。
https://docs.python.org/zh-cn/3/library/exceptions.html