Я заметил в Java два шаблона регистрации информации, которые могут быть полезны разработчику при возникновении исключения.
Следующий шаблон кажется очень распространенным. По сути, вы просто располагаете информацией журнала журнала по мере необходимости, чтобы в случае возникновения исключения у вас была трассировка журнала.
Код: Выделить всё
try {
String myValue = someObject.getValue();
logger.debug("Value: {}", myValue);
doSomething(myValue);
}
catch (BadThingsHappenException bthe) {
// consider this a RuntimeException wrapper class
throw new UnhandledException(bthe);
}
Следующий шаблон, который я видел, пытается смягчить эту проблему, но кажется некрасивым:
Код: Выделить всё
String myValue = null;
try {
myValue = someObject.getValue();
doSomething(myValue);
}
catch (BadThingsHappenException bthe) {
String pattern = "An error occurred when setting value. [value={}]";
// note that the format method below doesn't barf on nulls
String detail = MessageFormatter.format(pattern, myValue);
// consider this a RuntimeException wrapper class
throw new UnhandledException(detail, bthe);
}
Единственный другой подход, который я видел, — это использование карты для хранения пар ключ-значение, которые затем выгружаются в сообщение об исключении. Я не уверен, что мне нравится этот подход, поскольку он, похоже, приводит к раздуванию кода.
Есть ли какое-то Java-вуду, которого мне не хватает? Как вы обрабатываете информацию о состоянии исключения?
Подробнее здесь: https://stackoverflow.com/questions/111 ... on-in-java
Мобильная версия