我有一個函數請求一個人,返回人員ID。但是,如果方法檢測到故障,我想返回一個錯誤(帶有說明?)。函數返回值
因此,可以說,我的作用是:
public int GetPersonId(string username)
{
//Logic
return personId;
}
中的邏輯,我稱之爲一個進程,並返回一個ID。但是,如果沒有結果返回,我可以返回-1,並在調用代碼中處理 - 但是感覺不好。
創建一個異常並嘗試/抓住它,或者是什麼會更好?我確信我讀過一次,爲商業類型規則拋出異常,這不是好習慣。
解決這個問題的最佳方法是什麼?
此外,也許proc會返回其他狀態,如'人存在,但被標記爲已刪除','沒有這樣的人存在'等。我的意思是有多個'例外'。
[在異常和返回值之間選擇]的可能重複(http://stackoverflow.com/questions/5460101/choosing-between-exception-and-return-value) – 2012-07-12 00:51:01
要返回「ID」或「Nothing」 * I *通常在失敗時使用'int?'並返回'null' - 但是,如果返回比拋出異常更適用,則取決於這種失敗操作應具有的「什麼樣的效果」。特別是,對我來說,最大的決定性問題是:*期望*失敗或失敗是否意味着*編碼錯誤*?意外的情況和編碼錯誤通常應該導致異常,imoho。 – 2012-07-12 00:51:38
使用-1作爲錯誤代碼沒有任何問題。 – 2012-07-12 00:53:13