c# - 自定义异常是否应该有自己的 ErrorCode?

标签 c#

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

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

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

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

最佳答案

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

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

另请务必阅读这篇关于 custom exceptions 的博文,你真的需要它们吗?

关于c# - 自定义异常是否应该有自己的 ErrorCode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376452/

相关文章:

c# - 反射(reflection)帮助。根据类的属性从类中创建一个集合?

c# 我应该使用服务还是只轮询数据库

c# - 主线程在任务线程完成之前终止

c# - ADAL - AcquireTokenSilentAsync 失败(Azure Active Directory 身份验证库)

c# - Entity Framework 核心 : saving uploaded file to joined table

c# - MassTransit/RabbitMq 错误队列 - 如何删除消息?

c# - 我怎样才能去掉 Picturebox 的边框?

c# - 文件附件在 Microsoft Bot Emulator 中有效,但在 Skype 中无效

c# - 访问 Linq 查询的基本列表

c# - Google.GData.Spreadsheets 上出现 404 错误