小甲鱼 发表于 2022-4-21 18:13:01

已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览 购买主题

小古比鱼 发表于 2022-5-5 10:32:20

try-except语句花样甚多!本节继续讲解异常,谈到了try-except语句的几种扩展形式:搭配else语句,当try语句中没有检测到异常时执行else语句中的内容;搭配finally语句,无论异常是否发生,都会执行finally语句中的内容,通常用于执行收尾工作,如关闭文件;甚至还可以去掉except语句,用try语句直接搭配finally语句,向世界道一声晚安!异常还可以实现嵌套,当外部异常先发生时,内部异常不会被捕获。
raise语句和assert语句用于主动触发异常。前者拥有偷天换日的特异功能,还可以实现异常链;后者只能引发AssertionError异常,通常用于代码调试,及时止损。
本节最后讲了如何利用异常来实现goto,指哪打哪,例如一下跳出多层嵌套循环,另辟蹊径,简单快捷!由此可见,办法总比困难多,正所谓:“没有办法,我们就创造办法;无路可退,我们就修桥铺路!”

fishcyou 发表于 2022-5-7 12:47:47

raise-from
自爆异常!注意它不可以生成不存在的异常。
raise ValueError("我说我有错!")
>>>
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
    raise ValueError("我说我有错!")
ValueError: 我说我有错!
python默认是不可以一次性跳出多个循环的,我们可以利用异常来实现这个需求:
try:
    while True:
      while True:
            for i inrange(10):
                if i > 3:
                  raise
                print(i)
            print("被跳过~")
      print("被跳过~")
    print("被跳过~")
except:
    print("我一下子就出来啦!")

>>>   
0
1
2
3
我一下子就出来啦!

墨墨在努力吖 发表于 2022-11-9 14:53:31

滴滴滴~打卡!{:10_298:}

migu_sm1 发表于 2022-11-12 13:13:13

Learning...{:10_279:}

Loafer0 发表于 2022-12-8 20:09:51

fishcyou 发表于 2022-5-7 12:47
raise-from
自爆异常!注意它不可以生成不存在的异常。



牛的牛的{:10_254:}

andyleesh 发表于 2023-1-7 15:58:07

打卡

kevin_001 发表于 2024-8-18 11:14:24

打卡
页: [1]
查看完整版本: 第057讲:异常(下)