Day10 - jeremy0405/Codesquad Wiki

사용자 예외 처리

그룹 리뷰 시간에 내 코드에 대해 조원분들이 조언을 주셨다. 입력 검증을 할 때 그냥 크게 throw new Exception("예외명") 으로 예외를 던지고 있었는데 조금 더 작은 예외로 던지거나 사용자 예외를 통해서 처리를 하면 어떻겠냐는 피드백을 받았다. 예외의 종류 대해서 잘 알지 못하고 있어서 예외 종류에 대해서 정리를 해보고 사용자 예외 처리 한 것을 정리해보려고 한다.

IllegalArgumentException

IllegalStateException

ArithmeticException

커스텀 예외 처리

Sally 가 해주신 말씀으로 커스텀 예외 처리를 하기 전에 RuntimeException을 상속한 BaseException을 구현한 후에 BaseException을 상속받아 커스텀 예외를 구현하면 변화에 자유롭게 커스텀 예외를 처리할 수 있다고 한다. 중간에 층을 하나 둬서 코드의 유지보수성을 높일 수 있는 것 같다.

커스텀 예외 처리 시 중요한 고려 사항

  1. 항상 혜택을 제공해야 한다.
    • 커스텀 예외의 의도는 자바 표준 예외들보다 더 자세하게 표현하기 위한 것이다. 이러한 것이 없이 커스텀 예외를 만들 필요는 없다.
  2. 네이밍 컨벤션을 지켜야 한다.
    • Exception으로 끝나도록 예외명을 지어야 하고 예외에 대한 더 자세한 정보를 줄 수 있는 예외명을 고민해서 지어야 한다.
public class BaseException extends RuntimeException {  
  
  public BaseException(String title) {  
    super(title);  
  }  
  
}
public class InputRangeException extends BaseException {  
  
  public InputRangeException(String title) {  
    super(title);  
  }  
}

참고 블로그