【发布时间】:2011-11-28 02:40:51
【问题描述】:
我应该测试 if 是否有效,还是只测试 try 并捕获异常?
- 是否有可靠的文档表明首选一种方法?
- 还有一种方式 pythonic?
例如,我应该:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
或者:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
一些想法...
PEP 20 说:
错误绝不应该悄无声息地过去。
除非明确静音。
是否应该将使用try 而不是if 解释为静默传递的错误?如果是这样,您是否通过以这种方式使用它来明确地使其静音,从而使其正常?
我不是指的是您只能以一种方式做事的情况;例如:
try:
import foo
except ImportError:
import baz
【问题讨论】:
标签: python exception-handling if-statement try-catch pep