몰입하며 나아가는 개발이란

Architecture, Desgin Pattern

Exception 처리 방법

류하을 2022. 5. 20. 10:00

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