본문 바로가기

Java

Exception

Exception

에러와 예외

  • 먼저 예외란 입력값에 대한 처리가 불가능하거나, 값이 잘못되어 정상적인 프로그램 흐름에 어긋나는 거을 의미한다.
    • 자바에서 예외는 개발자가 직접 처리할 수 있기 때문에 미리 예측하여 핸들링할 수 있다.
  • 에러는 시스템에 비정상적인 상황에서 발생하기 때문에 개발자가 애플리케이션 코드에서 처리할 수 없는 경우가 많다.
  • Java에서 모든 예외는 Exception 클래스를 상속받는다. 크게 두 가지로 나눌 수 있는데 Checked Exception과 Unchecked Exception이다.
    • Checked Exception이란 컴파일 타임에 컴파일러가 예외를 미리 알려줄 수 있는 예외를 의미한다. 그렇기에 체크드 예외를 처리하지 않으면 컴파일 오류가 발생한다.
      • UnChecked Exception이 아닌(Runtime Exception을 상속받지 않는) 예외는 모두 Checked Exception이라고 정의하기도 한다.
    • UnChecked Exception은 RuntimeException을 상속받는 예외이다.

예외 처리

예외 복구

  • 예외 상황을 파악하고 문제를 해결하여 정상상태로 되돌리는 방법
  • 예외를 잡아서 일정시간 대기하고 다시 재시도를 반복한다.
  • 최대 재시도 횟수를 초과하면 예외를 발생시킨다.

예외처리 회피

  • 예외처리를 직접 담당하지않고 해당 함수를 호출한 쪽으로 넘긴다.
  • 예외처리가 필요하다면 적절히 처리하고 던지는 것이 좋다.
  • 그냥 예외를 던지는 것은 무책임한 처리이다.

예외 전환

  • 조금 더 명확한 의미를 전달하기 위해 보다 적절한 의미의 예외로 변경한다.
  • Checked Exception을 Unchecked Exception으로 포장하여 던지기도 한다.