try ... except (IOError) ... except: pass 这样的代码结构,符合语法逻辑吗?

2017-10-28 11:41:56 +08:00
 miniyao

希望这段代码执行的时候:如果遇到 IOError 的时候,print('IOError')。如果没有遇到 IOError,do something 出错(任何错误)也直接 pass。

try:
    
    do something

except IOError:

    print('IOError')

except:

    pass
2819 次点击
所在节点    Python
16 条回复
e9e499d78f
2017-10-28 11:43:18 +08:00
符合语法逻辑
lonenol
2017-10-28 12:07:51 +08:00
不都是这么干的吗..
ysc3839
2017-10-28 12:16:42 +08:00
看上去没问题……
billgreen1
2017-10-28 12:23:09 +08:00
没问题,不过最好不要用 print, 用 log
iFlicker
2017-10-28 12:26:19 +08:00
@billgreen1 封装一个类似于 android 的 Log.e("",""); ?
Kilerd
2017-10-28 12:30:47 +08:00
except IOError as e:

可以捕捉到更加具体的异常信息
wwqgtxx
2017-10-28 12:38:30 +08:00
最后最好是 except Exception,要不然连 SystemExit 这种 BaesException 也会被 pass 掉
flyingghost
2017-10-28 12:42:12 +08:00
干活()
try:
下班()
except 产品经理改需求:
掏出菜刀摆桌上走人()
except:
pass
继续干活()

每天不都是这样的逻辑吗?你还能处理多大的异常?
zhx1991
2017-10-28 12:53:06 +08:00
pass 也是一种处理逻辑啊

有时候异常上层不一定要知道, 上层很可能完全不关心这里是不是错误了

不过 log 还是要打
hcnhcn012
2017-10-28 13:05:41 +08:00
Except 意为除非,例外,try 块发生错误,除非是 io 错误才会执行 except 块,在英语上也符合逻辑啊
scriptB0y
2017-10-28 16:51:00 +08:00
ryd994
2017-10-28 17:55:01 +08:00
@hcnhcn012 except 是 exception 的缩写
mrdongzhijie
2017-10-28 23:24:31 +08:00
lihongjie0209
2017-10-29 01:50:51 +08:00
如果这段代码出错后直接 pass, 我觉得可以直接删了这段代码了, 毕竟也没什么用.
liz2nku
2017-10-29 04:58:20 +08:00
@lihongjie0209 可以在日志里写个 io 异常哈哈哈哈哈哈
billgreen1
2017-10-29 10:13:08 +08:00
@ryd994 我倒是觉得 except 是动词,否则无法解释 except XXXXException as e: blablabla

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/401460

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX