实现自定义异常的优缺点如下:
创建一个在其描述中表示错误消息的枚举:
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
类等)
这是MVP 推荐的链接。
谢谢你。