第九天学习内容

导引问题

在这里插入图片描述
异常,EXCEPTION

异常机制本质

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
Tracecheck 追溯
most recent call last 最后一次调用
碰到错误 不要慌
在这里插入图片描述
Try…一个except结构
在这里插入图片描述
try 区块 包含着可能引发异常的代码,except块则用来捕捉和处理发生的异常。执行的时候,如果try块中没有引发异常,则跳过except块继续执行后续代码,如果try块发生了异常,则跳过try,执行except块,进行异常的处理。处理完一场之后,继续执行后续代码。
try:
XXXX
except BaseException as e
XXXX

后续代码
XXX

在这里插入图片描述

#!测试异常
print("step0")
try:
    print("step1")
    a=3/0
    print("step2")##遇到异常的时候 这一步无法执行
except BaseException as e : ##这一步来处理异常
    print("step3")##异常处理之后,继续执行
    print(e)
    print(type(e))
print("end!!!")#跳出except之后 ,继续执行正常的代码

在这里插入图片描述

#!测试异常
print("step0")
try:
    print("step1")
    a=3/2 ##此处无异常,整除执行
    print("step2")##遇到异常的时候 这一步无法执行
except BaseException as e : ##这一步不进行执行
    print("step3")
    print(e)
    print(type(e))
print("end!!!")#跳出try之后 ,继续执行正常的代码

测试一个例子:输入88结束
第一步,输入一个正常的例子

#测试:循环输入数字,如果不是数字则处理异常,直到数字输入88,结束循环
while True:
    x=int(input("请输入一个数字:"))#对输入的数字进行取整
    print("输入的数字:",x)
    if x==88:
        print("退出程序")
        break
print ("循环数字输入程序结束!")

第二步:
在这里插入图片描述

#测试:循环输入数字,如果不是数字则处理异常,直到数字输入88,结束循环
while True:
    try:
        x=int(input("请输入一个数字:"))#对输入的数字进行取整
        print("输入的数字:",x)
        if x==88:
            print("退出程序")
            break
    except BaseException as e:
        print(e)
        print("异常,输入的不是数字")
print ("循环数字输入程序结束!")

try …多个except 结构
在这里插入图片描述
在这里插入图片描述
这里需要注意的是,捕获可能出现的多个异常值时,按照先子类再父类的顺序,并且针对性的写出异常处理代码。写完这些EXCEPTION1,2,3…之后,为了避免以后,可以在最后增加BaseException
在不确定子类父类的关系时,
在这里插入图片描述
diagram 可以帮助我们查看
在这里插入图片描述
try …except…else结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们发现,无异常的时候,try 执行,except 不执行,但是finally要执行。
这都结束之后,最后执行正常语句,即finally下面的。

在这里插入图片描述
无异常的时候,try 执行到异常处停止执行,except 要执行,finally也要执行。
finally下面的语句就不能执行啦。
如果想要执行剩下的语句,需要在finally 里面再+try except。。。
在这里插入图片描述
return 语句和异常处理问题
****

在这里插入图片描述
常见异常的解决
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于finally 有无异常都执行
用with来进行上下文管理,便于实时释放资源

在这里插入图片描述
with 不是用来取代 try …except…finally 结构的,而是作为补充,方便我们在文件管理/网络通信时的开发。
在这里插入图片描述
在这里插入图片描述
对比两个结构的表述,with 更加简单

Traceback :

在这里插入图片描述

在这里插入图片描述

自定义异常类:

在这里插入图片描述
在这里插入图片描述
Pycharm 开发环境的调试模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值