异常

异常


异常的简介

我们在运行程序的过程中,有时候程序会报错,比如说,除数不能为0,索引值不存在,不同数据类型相加错误等。我们称这些在程序运行时出现的错误为异常

异常处理

当程序中出现异常时,代码会终止运行,异常后面的代码都不会执行。所以我们希望能够通过编写代码来处理异常,使程序能够在遇到异常后能够正常继续执行,异常后面的代码也能够继续执行


处理异常的代码

try:
	代码块(容易出错的代码快)
except(错误类型):
	代码块(try代码块出错后执行)
except(错误类型):
	代码块
.......
else:
	代码块(try代码块无异常时执行)
finally:
	代码块(无论try代码块是否正确都执行)

注意:try语句必须有,而except和finally至少要有其中一个,else语句可有可无


异常的传播

异常传播的案例
def fn():
    print('我是fn')
    print(10/0)

def fn2():
    print('我是fn2')
    fn()

def fn3():
    print('我是fn3')
    fn2()
    # try:
    #     fn2()
    # except ZeroDivisionError:
    #     print('除数不能为0')

r = fn3()
print(r)

执行结果
通过上面的执行结果,可以看出异常传播是由里向外进行传播的:函数作用域 → 全局作用域。

详细的说:当函数内遇到异常时,如果进行了异常处理,则不会报错,如果没有进行处理,那么就会向函数调用处进行传播,如果一直没有进行处理,直到全局作用域,若还未处理,则报错。

当程序在执行中遇到异常时,会将异常信息传给异常对象,而异常的传播,实际上是将异常对象抛给了函数调用处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值