2

我正在尝试编写代码来创建一个EpicFailException类作为ApplicationException. 我必须添加一个将HelpLink属性默认为google.com的构造函数。以下是我到目前为止所拥有的。关于如何应用子类的任何建议?

 public class ApplicationException : Exception
 {
     public ApplicationException(string auxMessage, Exception inner) :
         base()
     {
         this.HelpLink = "http://google.com";
     }
 }
4

2 回答 2

1

.NET 类设计指南已更改;目前的建议是从而Exception不是从ApplicationException.

也就是说,如果您需要HelpLink在许多派生异常中设置属性,您可能需要创建一个基类,该基类需要该HelpLink属性的值作为参数,然后从中派生:

public abstract MyExceptionBase : Exception
{
    protected MyExceptionBase(string message, string helpLink) : 
        base(message)
    {
        HelpLink = helpLink;
    }
}

public MyException : MyExceptionBase
{
    public MyException(string message) : 
        base(message, "http://www.google.com")
    { }
}

请注意,您仍应遵循自定义异常的所有其他准则,例如序列化、无参数构造函数等。

于 2011-05-01T21:58:35.497 回答
0

我不确定我是否收到了这个问题,但您可能正在寻找

base(auxMessage,inner)

而不仅仅是

base()
于 2011-05-01T21:56:02.393 回答