【发布时间】:2010-10-01 14:13:09
【问题描述】:
我正在用 Java 编写一个 Web 服务,并且我试图找出定义错误代码及其相关错误字符串的最佳方法。我需要将数字错误代码和错误字符串组合在一起。错误代码和错误字符串都将发送到访问 Web 服务的客户端。例如,当发生 SQLException 时,我可能想要执行以下操作:
// Example: errorCode = 1,
// errorString = "There was a problem accessing the database."
throw new SomeWebServiceException(errorCode, errorString);
客户端程序可能会显示以下消息:
“发生错误 #1:有一个 访问数据库时出现问题。”
我的第一个想法是使用错误代码的Enum 并覆盖toString 方法以返回错误字符串。这是我想出的:
public enum Errors {
DATABASE {
@Override
public String toString() {
return "A database error has occured.";
}
},
DUPLICATE_USER {
@Override
public String toString() {
return "This user already exists.";
}
},
// more errors follow
}
我的问题是:有没有更好的方法来做到这一点?我更喜欢代码中的解决方案,而不是从外部文件中读取。我在这个项目中使用 Javadoc,能够在线记录错误代码并在文档中自动更新它们会很有帮助。
【问题讨论】:
-
迟到的评论,但值得一提的是我的事情...... 1)你真的需要异常中的错误代码吗?请参阅下面的 blabla999 答案。 2)您应该小心将过多的错误信息传回给用户。有用的错误信息应写入服务器日志,但应告知客户端最低限度(例如“登录时出现问题”)。这是一个安全问题和防止欺骗者立足的问题。