У меня есть серия сообщений об исключениях:
enum myEnum {
BASIC(1, "An error occurred"),
WITH_ERRORID(2, "Error id: {0}"),
DETAILED(3, "Problem in record {0} with index {1}");
};
У меня также есть одно, многократно используемое разрешение для регистрации и создания пользовательского исключения:
public void throwException (myEnum message) {
log.addEntry(message);
throw new CustomException(message);
}
Вызов метода прямойвперед:
throwException (myEnum.DETAILED);
Сейчас я борюсь с самым элегантным способом форматирования строк.Я мог бы добавить метод toString () в перечисление, чтобы отформатировать строку на основе количества входных данных, и изменить throwException, чтобы принимать вместо него строку:
String msg = message.toString(variable);
throwException (msg);
String msg2 = message.toString(variable, otherVariable);
throwException (msg2);
String msg3 = message.toString(variable, otherVariable, nextVariable);
throwException (msg3);
Хотя это будет работать, я хотел бы переместитьповторные вызовы toString с точностью до throwException ().Я думал о передаче ArrayList для throwException ().Но тогда мне придется проверить размер списка, прежде чем я отформатирую строку:
if (list.size == 1) MessageFormat.format(message, list.get(0));
if (list.size == 2) MessageFormat.format(message, list.get(0), list.get(1));
Является ли лучший технический или конструктивный подход для решения этой проблемы?