python - 我应该为不存在的文件参数引发 ValueError 或 OSError 吗?

标签 python exception

当程序收到不存在或不是目录的文件名参数时,我想引发错误。但是什么错误被认为是最佳实践?

我知道 ValueError 通常用于表示无效参数(我已经看到 several questions 了)。我还了解到,特别是在 Python 3.3 ( PEP 3151 ) 中对异常进行重组之后,OSError 是与系统交互相关问题的包罗万象的类别。

所以,我有一个需要文件名参数的程序。如果调用者提供的名称不存在,或者存在但是是一个目录,我应该引发什么错误?这是一个不正确的参数,所以似乎 ValueError 适用;但是如果我尝试将它作为文件读取,我将得到一个 OSError——所以为了保持一致性不应该返回它吗?

最佳答案

真的重要吗?(我假设您没有捕捉到这个异常,它纯粹是为了个人查看终端输出的信息目的)这些都不会被操作系统看到

raise Exception("Invalid Arguments, expected a file that exists not %r"%(filename))

或者让它在尝试自然打开文件时失败

关于python - 我应该为不存在的文件参数引发 ValueError 或 OSError 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29954355/

相关文章:

Java反射-错误抛出

c# - 如何捕获 DbUpdateException 唯一异常?

c++ - 如何在 C++ 异常类析构函数中释放变量

python - 用另一个数据帧的值填充数据帧列

python - 通过socks5代理使用telepot(telegram bot python包)

python - Jenkins 代码覆盖率是如何工作的?

java - 您如何断言在 JUnit 测试中引发了某个异常?

java - 错误类消息创建方式

python - 单个 CSV 文件中的多个分隔符

python - python中每个函数的内存使用情况