【发布时间】:2010-05-16 12:25:01
【问题描述】:
我有一个关于 Python 中的错误检查的问题。假设我有一个将文件路径作为输入的函数:
def myFunction(filepath):
infile = open(filepath)
#etc etc...
一个可能的前提条件是该文件应该存在。
有几种可能的方法可以检查此前提条件,我只是想知道最好的方法是什么。
i) 使用 if 语句检查:
if not os.path.exists(filepath):
raise IOException('File does not exist: %s' % filepath)
这是我通常会这样做的方式,尽管如果文件不存在,Python 会引发相同的 IOException,即使我不引发它。
ii) 使用 assert 检查前置条件:
assert os.path.exists(filepath), 'File does not exist: %s' % filepath
使用断言似乎是检查前置/后置条件的“标准”方式,所以我很想使用这些。但是,当在执行期间使用 -o 标志时,这些断言可能会被关闭,这意味着此检查可能会被关闭并且看起来很冒险。
iii) 根本不处理前置条件
这是因为如果文件路径不存在,无论如何都会产生异常,并且异常消息足够详细,让用户知道文件不存在
我只是想知道上面哪一个是我应该用于我的代码的标准做法。
【问题讨论】:
标签: python error-handling assert