我想在我的Java项目中有错误代码,但它们应该有变量String描述。例如,我可能有两个BadCharacterCount错误,但我想将它们表示为两个不同的字符串,例如“字符数不好:预计50,得到60”和“字符数不好:预计40,得到70”。我希望能够将这两种情况都识别为BadCharacterCount错误,并且理想情况下将这些错误识别为某种枚举。
这里有类似问题的讨论很好: Best way to define error codes/strings in Java?
但是,他们没有处理变量错误字符串的情况......有什么想法吗?
答案 0 :(得分:0)
考虑使用错误字符串作为String.format()的格式。当然,您必须小心地使用特定格式正确地为每个错误排列参数。
答案 1 :(得分:0)
我认为你的两个错误描述是:
字符数不好:预计50,得到60
和
字符数不好:预计40,得70。
已经是一样的了。字符串是:
错误的字符数:预期%s,得到%s。
然后,当您需要构造错误消息时,请务必通过String.format
传递
String.Format(Error.BadCharacterCount, 50, 60)
和
String.Format(Error.BadCharacterCount, 40, 70)
答案 2 :(得分:0)
你可以这样:
public class BadCharacterCountException extends Exception {
public BadCharacterCountException(int expected, int recieved) {
super("Bad character count: expected " + expected + ", got " + recieved + ".");
}
}
或
public enum ErrorCode {
BadCharacterCount("Bad character count: expected {0}, got {1}.");
private final String message;
private ErrorCode(String message){
this.message = message;
}
public String getErrorMessage(Object... args) {
return MessageFormat.format(message, args);
}
}