2

我有一个我一直在处理的套接字包装库,除其他外,在开始时进行一点握手,以确保与您交谈的任何人都使用与您相同的协议和设置。我以标准方式创建了自己的异常类:

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

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

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

4

2 回答 2

3

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

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

另外一定要阅读这篇关于自定义异常的博客文章,你真的需要它们吗?

于 2012-04-29T23:09:24.993 回答
1

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

于 2012-04-29T22:16:26.730 回答