好吧,当然可以更好地实现枚举解决方案(通常非常不错):
public enum Error { DATAbase(0, "A database error has occured."), DUPLICATE_USER(1, "This user already exists."); private final int pre; private final String description; private Error(int pre, String description) { this.pre = pre; this.description = description; } public String getDescription() { return description; } public int getCode() { return pre; } @Override public String toString() { return pre + ": " + description; }}您可能需要重写toString()来仅返回描述-不确定。无论如何,主要要点是您不需要为每个错误代码分别覆盖。还要注意,我已经明确指定了代码,而不是使用序号-
这使更改顺序和以后添加/删除错误更加容易。
不要忘记这根本不是国际化的,但是除非您的Web服务客户端向您发送语言环境描述,否则您就无法轻易地将其国际化。至少他们会在客户端上使用错误代码供i18n使用…



