自定义异常应该有自己的ErrorCode吗?

时间:2012-04-29 22:10:53

标签: c#

我有一个套接字包装库,我一直在处理这个问题,除此之外,还有一些小握手,以确保与你交谈的人使用与你相同的协议和设置。我以标准方式创建了自己的异常类:

 private class NSocketProtocolException : System.Exception
    {
        public NSocketProtocolException(string message) : base(message) { }
    }

我抛出此异常有多种原因,例如,如果客户端和服务器没有使用相同版本的协议,如果想要使用加密而另一个不想使用加密,等等。现在我'我唯一一个使用这个库的人,但是我试图将它设计得足够友好,以便将来其他人也可以。为了让其他程序员能够在抛出异常的不同实例中做更有价值的事情,我是否应该使用自己的自定义错误代码?

我真的不知道如何编辑错误代码,但更重要的是,我不想使用可能是其他类型的异常使用的相同错误代码。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您不需要错误代码,异常消息是有关异常的详细信息的位置。如果您使用错误代码,您仍然必须在某处记录错误代码,对吧?所以描述可以在异常消息中。您的代码的用户可以按类型捕获异常。

如果您需要存储有关异常或上下文的一些数据,请使用Exception.Data,例如,您可以输入数据时间戳异常,或者在Web应用程序中,您可以将当前请求URL放入数据等。< / p>

另外请务必阅读关于custom exceptions的博客文章,您真的需要它们吗?

答案 1 :(得分:1)

只需将异常公开,(添加其他构造函数),然后如果使用它的任何人感觉需要在某些下游应用程序中无法处理异常,他们可以添加自己的错误代码。