姬長信(Redy)

python – 最好’尝试’某些东西并捕获异常…


我应该测试某些东西是否有效或者只是尝试这样做并捕获异常?

>有没有可靠的文件说一种方式更受欢迎?
>一种方式更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说:

Errors should never pass silently.
Unless explicitly silenced.

应该使用try而不是if被解释为默认传递的错误?如果是这样,你是否通过这种方式使用它来明确地对它进行静音,从而使它成为可能?

我指的是你只能单向做事的情况;例如:

try:
    import foo
except ImportError:
    import baz