Java中带有变量字符串描述的错误代码
我希望Java项目中有错误代码,但它们应该有变量字符串描述。例如,我可能有两个BadCharacterCount错误,但我希望将它们表示为两个不同的字符串,例如“Bad character count:expected 50,Get 60”和“Bad character count:expected 40,Get 70”。我希望能够将这两种情况都识别为BadCharacterCount错误,并且理想情况下将它们放在某种枚举中 这里有一个类似问题的很好的讨论:Java中带有变量字符串描述的错误代码,java,enums,Java,Enums,我希望Java项目中有错误代码,但它们应该有变量字符串描述。例如,我可能有两个BadCharacterCount错误,但我希望将它们表示为两个不同的字符串,例如“Bad character count:expected 50,Get 60”和“Bad character count:expected 40,Get 70”。我希望能够将这两种情况都识别为BadCharacterCount错误,并且理想情况下将它们放在某种枚举中 这里有一个类似问题的很好的讨论: 但是,它们不处理变量错误字符串的情
但是,它们不处理变量错误字符串的情况。。。有什么想法吗?考虑使用错误字符串作为string.format()的格式。当然,您必须小心,让每个错误的参数与特定格式正确对齐。我认为您的两个错误描述: 坏字符计数:预期为50,得到60 以及: 坏字符计数:预期为40,得到70 都是一样的。字符串为: 错误字符计数:应为%s,已为%s 然后,当您需要构造错误消息时,只需确保通过
String.format
:
String.Format(Error.BadCharacterCount, 50, 60)
及
你可以有这样的东西:
public class BadCharacterCountException extends Exception {
public BadCharacterCountException(int expected, int recieved) {
super("Bad character count: expected " + expected + ", got " + recieved + ".");
}
}
或
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);
}
}