如果我有一個特定的異常,我期望它會發生; 並且爲了處理它,例如,我選擇在其發生時顯示錯誤消息,這會更好地執行,爲什麼?這是異常處理的更好的做法?
解釋性代碼:
try
{
string result = dictionary[key];
}
catch (KeyNotFoundException e)
{
//display error
}
或:
if(!dictionary.ContainsKey(key))
{
//display error
}
你的例子讓我有點que,不安,因爲它似乎是自由混合「邏輯材料」和「顯示材料」。 EG,如果有人想在命令行應用程序中重用您的業務邏輯呢?通常,更好的方法是讓邏輯函數累積錯誤並將它們返回給調用者,調用者可以決定如何處理這些錯誤。 – RossFabricant
rossfabricant,你應該看到我使用的代碼。業務邏輯和業務規則被認爲是相同的,所以所有業務邏輯都處於顯示級別或數據訪問級別。當我問及如何將業務邏輯提取到自己的邏輯層時,我被告知另一個層次的間接性是沒有必要的。我不同意,但也許穆斯塔法的情況也是如此。最佳做法+1。 –