예외 처리
예외 처리한 예외 객체(Exception)를 catch하여 핸들링하는 방법을 말한다.
예외 처리 원칙
온라인 거래에서는 가능하면 예외 처리를 하지 않는 것을 원칙으로 한다.
업무 소스에서 발생시키는 예외 객체가 DefaultApplicationException 이고 모든 메소드에서 DefaultApplicationException 를 throws하고 있기 때문에 굳이 catch할 필요가 없기 때문이다.
예외 처리가 필요한 경우
업무상 어떤 로직의 처리 결과에 상관 없이 프래그램이 진행되어야 하는 경우
/* 업무 처리-1 */
try {
/* 업무 처리-2 */
} catch (DefaultApplicationException e) {
// 에러 무시 처리 로깅
}
/* 업무 처리-3 */
에러 메시지를 변경하는 경우
try {
/* 업무 처리 */
} catch (DefaultApplicationException e) {
// 메시지 내용
throw new DefaultApplicationException("bcpp.test...", null, e);
}
예외를 catch하였으나 다시 throw하고 있으므로 ignoreException(e)를 호출하지는 않는다. 새로운 Exception 생성시 catch한 Exception 을 파라미터로 넣어 준다. 로그에 caused 로 표시된다. |
특정 예외를 catch하여 메시지 처리하는 경우
try {
employee.insertEmployee(input);
} catch (DuplicateKeyException e) {
// {0}이/가 중복되었습니다.
throw new DefaultApplicationException("bcpp.duplication...", new Object[] {"계약번호"}, e);
}
DefaultApplicationException 이외의 예외가 발생하는 경우
3rd Party 또는 java 기본 라이브러리에서 발생하는 Exception을 catch 하는 경우
try {
} catch (Exception e) {
throw new DefaultApplicationException("bcpp.test...", null, e);
}
새로운 Exception 생성시 catch한 Exception 을 파라미터로 넣어 준다. 로그에 caused 로 표시된다. |