Задать вопрос
@Eka2

Как улучшить архитектуру приложения?

Изучаю Spring, хочу вынести обработку и логгирование ошибок в отдельный класс: имеется ряд действий (в разных классах-контроллерах), результаты которых логгируются - удачно или нет они выполнились. В настоящее время это сделано так:
- базовый класс, который выполняет операции. если операция закончилась неудачно, то генерируется исключение с текстом сообщения об ошибке, иначе в лог выдается, что операция прошла успешно
if  (item==null) {
throw new MyException(Message.ERROR_READING);
} 
else 
{
log.info(Message.SUCCESS_READING);
}

- статичный класс с текстом сообщений об ошибках и успешно выполненных действиях
public final class Message {
	public static final String ERROR_READING = "Ошибка получения данных";
	public static final String SUCCESS_READING = "Данные получены";
}

- класс исключения, которому при создании в свойство message передается текстовое сообщение для возникшей ошибки, в конструкторе исключения записывается в лог текст ошибки.
public class ItemException extends RuntimeException {
		static Logger log = Logger.getLogger(App.class.getName());
                public MyException(String message) {
			super(message);
			log.error (message);
		}
}


Подскажите, пожалуйста, как улучшить архитектуру приложения (или я вообще не правильно размышляю):

1. Можно ли логгировать из конструктора (чтобы не дублировать каждый раз throw MyException с текстом ошибки и тут же следом лог с тем же текстом)?
2. Как быть с логом успешной операции, вроде сообщение об ошибке зашито в класс ошибки?
3. Делить ли класс Message на два с успешными или не успешными операциями?
  • Вопрос задан
  • 263 просмотра
Подписаться 2 Комментировать
Подписчики вопроса 2 К ответам на вопрос (1)