Exception 예외 처리 방법 3가지
예외란?
예외는 개발자가 구현한 logic에서 발생하므로 예외는 발생할 상황을 미리 예측하여 처리할 수 있다. 즉, 예외는 개발자가 처리할 수 있기 때문에 예외를 구분하고 그에 따른 처리 방법을 명확히 알고 적용하는 것이 중요하다.
예외 복구
예외 복구의 핵심은 예외가 발생하여도 애플리케이션은 정상적인 흐름으로 진행되는 것이다. 예외가 발생하면 그 예외를 잡아서 일정 시간만큼 대기하고 다시 재시도를 반복하게 된다. 그리고 최대 재시도 횟수를 넘기면 또 다른 예외를 발생 시킨다.
int maxretry = MAX_RETRY;
while(maxretry --> 0){
try{
// 시도
return;
}catch(Exception e){
// 로그출력 및 정해진 시간만큼 대기
}finally{
// 리소스 반납 및 정리 작업
}
}
throw new RetryFailedException();
예외 처리 회피
예외가 발생하면 throws를 통해 호출한 쪽으로 예외를 던지고 그 처리를 회피하는 것이다. 호출한 쪽에서 다시 예외를 받아 처리하도록 해야 하며, 최선의 방법이라는 확신이 있을 때만 사용하는 것을 권장 한다.
public void somtingMethod() throws Exception {
// Someting Logic
}
예외 전환
예외 전환은 예외를 잡아서 다른 예외를 던지는 방법이다. 호출한 쪽에서 예외를 받아서 처리할 때 좀 더 명확하게 인지할 수 있도록 돕기 위한 방법이다. 어떤 예외인지 분명해야 처리가 수월해지기 때문에 개발자가 해당 예외를 알아보기 쉬워지므로 권장하는 방법이다.
try{
// 회원가입 시도
}catch(Exception e){
throw new DuplicateUserIdException("회원 중복");
}
'Architecture, Desgin Pattern' 카테고리의 다른 글
Entity, DTO, VO개념 (0) | 2022.04.11 |
---|---|
ORM이란? (0) | 2022.04.08 |
도메인 주도 설계란?(DDD) (0) | 2022.04.06 |
RESTful이란? (0) | 2022.04.01 |
Singleton Pattern (싱글톤 패턴) (0) | 2019.12.11 |