如果到达代码中的非法位置,会引发哪个例外?

时间:2016-07-18 09:23:07

标签: python exception exception-handling

我的代码需要处理文件或目录(从shell中接受其中任何一个作为来自argparse的参数)。

相关摘录如下:

if in_dir:
    in_glob = os.path.join(in_dir, "*." + ext)
elif in_file:
    in_glob = in_file
else:
    # Should never arrive here!
    print("error: neither input file, nor input directory are set.")
    raise SystemExit

else节(绝不应该输入)中,我想提出一个比SystemExit更具信息性的例外 - 表明控制流到达非法位置

您建议我提出哪个例外?

2 个答案:

答案 0 :(得分:2)

许多其他语言都有assert_not_reached函数用于此目的,但python没有。它通常由

取代
assert False, 'this should never be reached'

或类似的东西。

答案 1 :(得分:0)

我建议您使用SystemErrorEnvironmentError,但也可以使用IOErrorLookupError