Коды ошибок с переменными строковыми описаниями в Java - PullRequest
0 голосов
/ 16 июля 2011

Я хотел бы иметь коды ошибок в моем Java-проекте, но они должны иметь переменные описания String. Например, у меня может быть две ошибки BadCharacterCount, но я бы хотел представить их в виде двух разных строк, например, «Плохой счет символов: ожидается 50, получил 60» и «Плохой счет символов: ожидается 40, получил 70». Я хотел бы иметь возможность распознавать оба этих случая как ошибки BadCharacterCount и в идеале иметь их в некотором перечислении.

Здесь хорошо обсуждается похожая проблема: Лучший способ определить коды ошибок / строки в Java?

Тем не менее, они не имеют дело со случаем ошибки переменной Strings ... Есть идеи?

Ответы [ 3 ]

0 голосов
/ 16 июля 2011

Я думаю, что ваши два описания ошибок:

Плохое количество символов: ожидается 50, получено 60

И

Неверное количество символов: ожидается 40, получено 70.

Уже такие же. Строка:

Неверное количество символов: ожидается% s, получено% s.

Тогда, когда вам нужно создать сообщение об ошибке, просто убедитесь, что оно пропущено через String.format:

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

И

String.Format(Error.BadCharacterCount, 40, 70)
0 голосов
/ 16 июля 2011

У вас может быть что-то вроде этого:

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);
    }
}
0 голосов
/ 16 июля 2011

Рассмотрите возможность использования строки ошибки в качестве формата для String.format ().Конечно, вы должны быть осторожны, чтобы ваши аргументы для каждой ошибки соответствовали определенному формату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...