的缺點是什麼如下的優點和實現自定義異常的缺點:
創建它代表了其描述錯誤消息的枚舉:優點和實施一個通用的自定義異常
public class Enums
{
public enum Errors
{
[Description("This is a test exception")]
TestError,
...
}
}
創建一個自定義異常類:
public class CustomException : ApplicationException
{
protected Enums.Errors _customError;
public CustomException(Enums.Errors customError)
{
this._customError = customError;
}
public override string Message
{
get
{
return this._customError!= Enums.Errors.Base ? this.customError.GetDescription() : base.Message;
}
}
}
的GetDescription
方法是一個枚舉擴展方法使用反射它獲取枚舉描述。這樣一來,我可以拋出異常,如:
throw new customException(enums.Errors.TestError);
並顯示給用戶像catch塊:
Console.WriteLn(ex.Message);
我已經看到了這個辦法通過一個MVP建議。這種方法在以下方面有什麼好處:
- 使用泛型異常:throw new Exception(「Error Message」);.
- 使用自定義例外:爲任何情況定義自定義例外。例如(
WebServiceException
類,AuthenticationException
類等)
Here's the link由MVP的建議。
謝謝。
焦點附近投票? WTF?也許可以這樣說,這個問題是主觀的,有爭議的,並且更好地屬於程序員.stackexchange.com ......但我不確定這一點。 – 2011-06-10 17:58:05
題外話?謹慎分享原因? – Kamyar 2011-06-10 18:00:14
您的示例顯示了「通用」和「自定義」之間的矛盾。 @alexn解釋了後果。 – 2011-06-10 19:35:07