簡體   English   中英

是否應該為不存在的文件參數引發ValueError或OSError?

[英]Should I raise ValueError or OSError for non-existent file arguments?

當程序收到不存在或不是目錄的文件名參數時,我想引發一個錯誤。 但是什么錯誤被認為是最佳實踐?

我知道ValueError通常用於表示無效的參數(並且我已經看到了幾個有關它的問題 )。 我也了解到,尤其是在Python 3.3( PEP 3151 )中重新組織了異常之后, OSError是與系統交互相關的問題的綜合類。

因此,我有一個期望文件名參數的程序。 如果調用方提供的名稱不存在,或者存在但僅是目錄,我應該引發什么錯誤? 這是一個錯誤的參數,因此似乎ValueError適用; 但是,如果我嘗試從文件中讀取文件,則會收到OSError -難道不應該為了一致性而返回此錯誤?

真的重要嗎?(我假設您沒有捕獲此異常,並且它純粹是出於個人查看終端輸出的信息目的),操作系統將不會看到任何異常,我只是

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

或嘗試自然打開文件時讓它失敗

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM