2011-07-26 112 views
1

我最近在一個項目中每個方法都包含一個返回代碼。例如:返回代碼在OOP

public Boolean LoadPageData(out int returnCode) { ... } 

public String GetCustomerName(out int returnCode) { ... } 

是用好的習慣,不好的做法,或只是個人喜好在OOP編程(具體ASP.Net)的情況下返回代碼?如果他們確實有一個地方在每個方法上都包含一個返回碼,那麼正確的用法是?

回答

1

通常,除常規返回值之外,還需要返回代碼是設計不良的標誌。

返回碼用於指示成功或不同程度的故障。在OOP中,如果方法完全返回,則方法成功。如果有任何不同程度的失敗,你應該拋出適當的例外。

+0

同意,處理返回碼會導致比必要的更多的代碼。您已經需要處理底層代碼可能拋出的異常,爲什麼還要處理返回碼呢?如果你不需要處理它們,爲什麼要處理它們呢? – pseudocoder

0

我認爲在具有異常和異常處理的語言中,處理特殊場景的首選方法是使用該框架。如果你不是在討論特殊情況,我仍然會分享你的猶豫,認爲返回代碼是一個好主意......我想,你可以在類中封裝任何與返回代碼相關的語義信息。

1

在OOP中表示錯誤的首選方法是拋出異常。在沒有例外的情況下,返回碼在C中很常見。如果您希望獲取某些自定義參數,或者創建異常類型枚舉並將其傳遞給泛型異常類,請自行創建異常。這裏有很多靈活性,不要太複雜,只要做現在的工作。

0

這不是好習慣。例外情況是處理異常情況的首選方式。要求調用者在每次調用方法時指定一個輸出參數也是非常麻煩的。

使用XML comments來警告調用者拋出或可能未處理的異常。

1

您應該使用異常來指示發生錯誤而不是返回代碼。請參閱here for more.返回碼在異常之前使用。