The code below catches the exception to write out a log statement and then re-throws the same exception. It is recommended to let the caller decide if the message should be logged and remove the whole try/catch clause.
This is the case if the method is called by a framework that is not under your control. If you log because the caller doesn’t have enough information to log, then your exception class is inappropriate. It is important to pass all required information along in the exception.
try { ...} catch (Exception1 e){ log.error(e.getMessage(), e); throw e; }} catch (Exception2 e){ log.error(e.getMessage(), e); throw e; }