如果一段程序可能出错就用 try except Exception 处理是不是一个好的办法,如果不是那么如何处理更优一些? 如:
try:
********
except Exception, e:
print e
continue
1
lxml 2017-07-20 10:58:13 +08:00
个人理解,预判可能出现错误 try except 是一个好办法,对错误处理区别处理才是个问题,原则性错误还是方向性错误,有的错误(比如网络)不影响直接 pass 掉重试就可以了,但比如用户输入错误这个不可接受的就得 raise 抛出。
|
2
widewing 2017-07-20 11:10:11 +08:00 via Android
除非你是框架,否则只处理明确定义的异常,不要处理 exception
|
3
fisher335 2017-07-20 11:22:54 +08:00 via iPhone
因为 try 里面会有很多信用的包,你这么写会吞掉保存!我比较反感动不动就 try 的。我认为在必要的时候用,不要动不动就 try
|
4
guyskk 2017-07-20 11:35:57 +08:00 via Android
捕获异常一定要明白自己的目的!我见过很多不知道为啥报错,直接就 try except 然后返回个错误信息 '出现错误',用户心里肯定一万个草泥马:你倒是告诉我出啥错了呀?
这种处理对用户没有任何帮助,开发者也非常难排查错误。更好的处理方式: 1. 让它报错 2. 程序入口统一处理这类异常,比如发送到 sentry,或者记录日志并提示用户发送错误日志 |
7
CryMeatel 2017-07-20 11:42:21 +08:00
logger.exception('xxx')
|
8
wyntergreg 2017-07-20 15:39:57 +08:00
except Exception 是最后用的
前边应该 except 各种 Exception |
9
hugo775128583 2017-07-20 15:47:15 +08:00 via Android
既然知道可能出错,为什么不能确定他会出什么错,然后修复或者是 catch。直接 Exception 不够妥当
|
10
hagezhou 2017-07-20 17:08:37 +08:00 via iPhone
如果看到源码或者一些框架,他们习惯于在内部都用 raise,可以用 puthon 自带的错误类型,也可以自己封装,try 在最外层,这样方便统一处理
|