Java中带有变量String描述的错误代码

时间:2011-07-16 01:19:31

标签: java enums

我想在我的Java项目中有错误代码,但它们应该有变量String描述。例如,我可能有两个BadCharacterCount错误,但我想将它们表示为两个不同的字符串,例如“字符数不好:预计50,得到60”和“字符数不好:预计40,得到70”。我希望能够将这两种情况都识别为BadCharacterCount错误,并且理想情况下将这些错误识别为某种枚举。

这里有类似问题的讨论很好: Best way to define error codes/strings in Java?

但是,他们没有处理变量错误字符串的情况......有什么想法吗?

3 个答案:

答案 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);
    }
}