【问题标题】:Error codes with variable String descriptions in JavaJava中带有变量字符串描述的错误代码
【发布时间】:2011-07-16 01:19:31
【问题描述】:

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

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

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

【问题讨论】:

    标签: java enums


    【解决方案1】:

    我认为你的两个错误描述:

    错误的字符数:预期 50,得到 60

    还有:

    错误的字符数:预期 40,得到 70。

    已经一样了。字符串是:

    错误的字符数:预期 %s,得到 %s。

    那么当你需要构造错误信息时,只要确保通过String.format:

    String.Format(Error.BadCharacterCount, 50, 60)
    

    String.Format(Error.BadCharacterCount, 40, 70)
    

    【讨论】:

      【解决方案2】:

      考虑使用错误字符串作为 String.format() 的格式。当然,您必须小心让每个错误的参数与特定格式正确对齐。

      【讨论】:

        【解决方案3】:

        你可以有这样的东西:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-30
          • 1970-01-01
          • 2018-12-02
          • 1970-01-01
          • 1970-01-01
          • 2013-06-06
          相关资源
          最近更新 更多