3

在 Python 中,我读到捕获 execptions 比先检查更好(也更容易),所以这就是我想要做的。

我的脚本使用打开并解析 XMLs 文件

xml.dom.minidom.parse(xml_file_path)

所以我在抓

xml.parsers.expat.ExpatError

但是如果该文件不存在,我会得到一个 FileNotFoundError 异常,所以我显然也需要捕获它。

我知道我不应该真的捕获所有异常,但是我怎么知道我应该为像 parse() 这样的函数捕获哪些异常?

4

2 回答 2

2

您可以查阅您使用的库的文档。更好的是,您可以编写一个首先触发异常的测试。然后您将确切地知道您需要捕获什么异常(并且将来有另一个测试来保护您)。

于 2015-12-18T10:02:49.900 回答
1

Python的“内置异常”是一个很好的起点。通过一些研究,您可以知道哪些操作会导致哪些异常。该文档也特别有用,因为它提供了实际示例。

特别是在您的情况下,您正在执行文件输入/输出操作 (IO),并且 IO 操作通常按以下方式处理:

try:
    with open('path_to_file', 'permission') as f:
        #do something with the file
except IOError as e:
    print e
于 2015-12-18T10:46:13.630 回答