在Python中,我已经读过捕获exec更好(也更容易),而不是先检查,这就是我要做的事情。
我的脚本打开并使用
解析XML文件xml.dom.minidom.parse(xml_file_path)
所以我抓了
xml.parsers.expat.ExpatError
但如果文件不存在,我会收到FileNotFoundError异常,所以我显然也需要抓住它。
我知道我不应该抓住所有异常,但我怎么知道我应该为像parse()这样的函数捕获哪些异常?
答案 0 :(得分:2)
您可以查阅您使用的库的文档。甚至更好的是,您可以在触发异常第一次的地方编写测试。然后你会确切地知道你需要捕获什么异常(以及将来有另一个测试来保护你)。
答案 1 :(得分:1)
一个好的起点是Python的'Built-in Exceptions'。通过一些研究,您可以判断哪些操作可能导致哪个异常。文档也特别有用,因为它提供了实际的例子。
特别是在您的情况下,您正在执行文件输入/输出操作(IO),IO操作通常按以下方式处理:
try:
with open('path_to_file', 'permission') as f:
#do something with the file
except IOError as e:
print e