鱼C论坛

 找回密码
 立即注册
查看: 1949|回复: 11

[技术交流] 只要我跑得够快,异常就追不上我~

[复制链接]
发表于 2020-3-25 14:45:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 永恒的蓝色梦想 于 2020-3-28 13:24 编辑

我们都知道,在 try finally 的结构里,不管 try 里面发生什么,finally 一定会执行。

同时我们也知道,finally 无法阻止异常发生。

所以,下面这个例子会发生什么呢?
  1. def func():
  2.         try:
  3.                 raise BaseException
  4.         finally:
  5.                 return '有异常'
复制代码


让我们来运行一下~

结果
  1. >>> def func():
  2.         try:
  3.                 raise BaseException
  4.         finally:
  5.                 return '有异常'

  6.        
  7. >>> func()
  8. '有异常'
复制代码
惊奇的发现,BaseException 竟然不见了!

原来我们在 BaseException 被引发之前就从函数里跑出去了,只留下 BaseException 在风中凌乱……

同理,以下几个例子也不会发生异常
  1. >>> for i in range(3):
  2.         try:
  3.                 print(i**2)
  4.                 iter(i)
  5.         finally:
  6.                 continue

  7.        
  8. 0
  9. 1
  10. 4
  11. >>>
复制代码
  1. >>> while 1:
  2.         try:
  3.                 int([])
  4.         finally:
  5.                 print('溜了溜了')
  6.                 break

  7.        
  8. 溜了溜了
  9. >>>
复制代码


如果对这个现象感到不解的童鞋,可以去看一下 一个账号 的这篇帖子:传送门  

如果有收获,别忘了评分


                               
登录/注册后可看大图

评分

参与人数 2荣誉 +8 鱼币 +8 贡献 +8 收起 理由
zltzlt + 3 + 3 + 3 鱼C有你更精彩^_^
qiuyouzhi + 5 + 5 + 5 Wow,还有这种用法

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-25 15:02:44 | 显示全部楼层
自占二楼
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 15:05:04 | 显示全部楼层
真是个奇葩的把异常甩掉的方法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 15:16:27 | 显示全部楼层
哈哈哈哈哈真够皮的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 15:20:17 | 显示全部楼层
刚才咩事都没有发生
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-25 15:26:10 | 显示全部楼层
qiuyouzhi 发表于 2020-3-25 15:20
刚才咩事都没有发生

是的,本来你不说谁都不知道的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 15:29:39 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-3-25 15:26
是的,本来你不说谁都不知道的

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-28 12:50:16 | 显示全部楼层
如果有收获,别忘了评分


                               
登录/注册后可看大图


  1. [color=Magenta][size=4]如果[size=7][backcolor=lemonchiffon]有收获[/backcolor][/size],别忘了[color=RoyalBlue][u][b]评分[/b][/u][/color]{:10_281:} :[/size][/color]

  2. [align=center][img]http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif[/img][/align]
复制代码




小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-28 13:24:43 | 显示全部楼层
一个账号 发表于 2020-3-28 12:50
如果有收获,别忘了评分 :

谢啦

                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-28 13:25:26 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-28 13:42:11 | 显示全部楼层

谢谢提供代码,已经用上了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-28 18:18:11 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 15:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表