【发布时间】:2014-07-08 05:28:43
【问题描述】:
我正在开发一个为客户端提供方法的 RPC Web 服务,我想使用异常来处理服务器应用程序中的错误,以便自动生成带有错误标头的响应,更重要的是,自定义错误代码(整数)。我创建了一个包含整数和消息的基本 CustomException 类。
我是否应该为每个方法的每个异常创建一个新类,并将其自定义错误代码硬编码在该类上?还是有其他方法可以解决这个问题?
例如假设我有一个 Login 方法,它可以有两个异常,“UnknownUsername”和“InvalidPassword”(仅作为示例;正如 Tieston T. 评论的那样,返回身份验证信息不是一个好习惯)。到目前为止我能想到的方法是:
- 使用
LoginException类并在内部方法上设置错误代码 - 创建一个
UnknownUsernameException和一个InvalidPasswordException类,继承LoginException,并在每个类上硬编码错误代码
【问题讨论】:
-
值得注意的是,标准安全协议规定,在身份验证尝试期间,您不会告诉调用应用程序什么是无效的。
-
我只是写下了我想到的第一个例子;我实际上并没有在我的服务上使用身份验证,但无论如何这是一个非常有用的旁注。
-
恕我直言
LoginException也不例外。预计登录可能会失败。 -
最简单的实现可能是@Harik 的第二个建议;有一个自定义错误类型,至少有一个错误代码,带有可选消息。您可以为您的 API 用户提供某种指南,解释各种错误代码的含义。
标签: c# java exception-handling error-code