gpt4 book ai didi

python - 如何处理不同Python版本中引发的不同异常

转载 作者:行者123 更新时间:2023-11-30 22:57:18 25 4
gpt4 key购买 nike

尝试使用 xml.etree.ElementTree.parse() 解析格式错误的 XML 内容会在 Python 2.6.6 和 Python 2.7.5 中引发不同的异常

Python 2.6:xml.parsers.expat.ExpatError

Python 2.7:xml.etree.ElementTree.ParseError

我正在编写必须在 Python 2.6 和 2.7 中运行的代码。据我所知,无法在 Python 中定义仅在 Python 版本中运行的代码(类似于我们在 C/C++ 中使用 #ifdef 所做的事情)。我认为处理这两个异常的唯一方法是捕获这两个异常的公共(public)父异常(例如异常)。然而,这并不理想,因为其他异常将在同一个 catch block 中处理。还有其他办法吗?

最佳答案

这不太漂亮,但应该可行......

ParseError = xml.parsers.expat.ExpatError if sys.version < (2, 7) else xml.etree.ElementTree.ParseError

try:
...
except ParseError:
...

可能需要根据版本修改导入内容(或者在从xml导入各种子模块时捕获ImportError,如果它们不这样做的话) python2.6 上不存在——我没有安装该版本,所以目前无法进行稳健的测试...)

关于python - 如何处理不同Python版本中引发的不同异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36752850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com