python - 如何从 Python 3 导入 FileNotFoundError?

标签 python python-2.7 exception python-3.x

我目前在需要 Python 3 内置异常的项目上使用 Python 2:FileNotFoundError。我该怎么做?

最佳答案

你当然可以定义任何你想要的异常(exception)。

但他们不会对你有任何好处。 FileNotFoundError 的全部意义在于,任何遇到 file-not-found 错误的 Python 操作都会引发该异常。仅仅定义你自己的异常并不能做到这一点。您将得到的只是一个具有适当 errno 值的 OSError(或 IOError,取决于 2.x 版本)。如果您尝试处理自定义 FileNotFoundError,您的处理程序将永远不会被调用。

所以,你真正想要的是(例如):

try:
    f = open(path)
except OSError as e:
    if e.errno == errno.ENOENT:
        # do your FileNotFoundError code here
    else:
        raise

关于python - 如何从 Python 3 导入 FileNotFoundError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26745283/

相关文章:

python - 使用 SWIG 包装调用另一个对象成员函数的 C++ 类

c++ - "Value Validation in Getter/Setter"是好的样式吗?

java - JasperReport异常打印

python - 如何以json格式返回数据?

python - 激活virtualenv时如何不显示路径

python - 生成随机音频或以不同的偏移量播放文件

python - 运行 `python -m unittest` 会更改在回溯中打印覆盖 `__name__` 的异常的方式

python - 从任何目录打开文件

python - main() 是否需要在每个包含处理程序的脚本中?

python - 2个输入函数?