В общем, это не очень хорошая идея, чтобы войти в каждое создание исключения. Ловец должен действительно решить, что является лучшей обработкой исключения. Кроме того, переопределение метода в исключении и запись в файл нарушает общий договор об исключении.
Кроме того, на более поздней стадии вы можете обнаружить ужасную проблему с производительностью, связанную с ведением журнала. Если переопределение происходит в центральном месте, вам будет трудно это исправить.
Если вы все еще хотите войти в систему, создавая исключение, то лучшим решением будет использование / создание класса утилит, например Throwables. Вызовите код как Throwables.logAndThrow (new CustomerException (...)), то же самое в одной строке кода, но гибкий на длительный срок. logAndThrow может быть таким же простым, как и при использовании техники логгера предыдущего постера:
public static void logAndThrow (Throwable t) {
logger.warning (т);
бросить т;
}