加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 13:49:13 所属栏目:Python 来源:网络整理
导读:当一个程序收到一个不存在的文件名参数,或者不是一个目录时,我想引发一个错误.但是哪种错误被认为是最佳做法? 我知道ValueError通常用于表示无效参数(我已经看过several questions).我也理解,特别是在Python 3.3(PEP 3151)中的异常重组之后,OSError是与系统
当一个程序收到一个不存在的文件名参数,或者不是一个目录时,我想引发一个错误.但是哪种错误被认为是最佳做法?

我知道ValueError通常用于表示无效参数(我已经看过several questions).我也理解,特别是在Python 3.3(PEP 3151)中的异常重组之后,OSError是与系统交互相关问题的全能类别.

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

解决方法

这真的很重要吗?(我假设你没有捕捉到这个例外,它纯粹是出于个人查看终端输出的信息目的)操作系统不会看到任何这样的例子我就是这样

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读