3 回答

TA貢獻1876條經驗 獲得超6個贊
在高級方面,例外;在低級的東西,錯誤代碼。
異常的默認行為是解開堆棧并停止程序,如果我正在編寫腳本,并且我尋找不在詞典中的鍵,則可能是錯誤,并且我希望程序停止并讓我都知道。
但是,如果我正在編寫一段必須在每種可能的情況下都知道其行為的代碼,那么我需要錯誤代碼。否則,我必須知道函數中每一行都可能拋出的每個異常,才能知道其將要執行的操作。編寫對每種情況(包括不愉快的情況)做出適當響應的代碼既繁瑣又困難,但這是因為編寫無錯誤的代碼既繁瑣又困難,而不是因為您要傳遞錯誤代碼。

TA貢獻1817條經驗 獲得超6個贊
我通常更喜歡異常,因為它們具有更多的上下文信息,并且可以(如果使用得當)將錯誤更清楚地傳達給程序員。
另一方面,錯誤代碼比異常輕巧,但難以維護。錯誤檢查可以無意中省略。錯誤代碼更難維護,因為您必須保留所有錯誤代碼的目錄,然后打開結果以查看拋出了什么錯誤。錯誤范圍在這里可能會有所幫助,因為如果我們唯一感興趣的是是否存在錯誤,則檢查起來更簡單(例如,HRESULT錯誤代碼大于或等于0表示成功,小于零就是失?。?梢詿o意中省略它們,因為沒有程序性的強迫開發人員檢查錯誤代碼。另一方面,您不能忽略異常。
總而言之,在幾乎所有情況下,我都傾向于使用異常而不是錯誤代碼。

TA貢獻1854條經驗 獲得超8個贊
我喜歡例外,因為
他們中斷了邏輯流程
他們受益于類層次結構,它提供了更多的功能
如果使用得當,則可能表示各種各樣的錯誤(例如,InvalidMethodCallException也是LogicException,因為這兩種情況都發生在代碼中的錯誤應在運行時之前被檢測到時),并且
它們可以用于增強錯誤(即,FileReadException類定義可以包含用于檢查文件是否存在或已被鎖定等的代碼)
- 3 回答
- 0 關注
- 523 瀏覽
添加回答
舉報