[java] 예외 발생 시 복구 가능한 예외와 복구 불가능한 예외에 대해 설명해주세요.

Java에서 예외는 두 가지 유형으로 분류됩니다: ‘복구 가능한 예외’와 ‘복구 불가능한 예외’입니다. 이 두 유형은 예외가 발생했을 때 처리 방법을 결정하는 데 중요한 역할을 합니다.

복구 가능한 예외 (Checked Exception)

복구 가능한 예외(checked exception)는 예외 상황이 발생해도 코드에서 예외를 처리하거나 복구할 수 있는 예외입니다. 대부분의 경우에는 예외 처리 코드를 통해 이러한 예외를 복구할 수 있습니다.

예를 들어, 파일을 읽을 때 발생하는 FileNotFoundException이 복구 가능한 예외의 한 예입니다. 이 예외는 try-catch 블록을 사용하여 파일이 존재하지 않을 때의 상황을 처리할 수 있습니다.

복구 가능한 예외는 Exception 클래스의 하위 클래스 중 RuntimeException을 제외한 모든 예외를 포함합니다.

복구 불가능한 예외 (Unchecked Exception)

복구 불가능한 예외(unchecked exception)는 예외가 발생하면 코드에서 복구하기가 어려운 예외입니다. 이러한 예외는 주로 시스템 오류나 프로그램의 심각한 결함과 관련이 있습니다.

예를 들어, 배열 인덱스를 벗어나는 상황에서 발생하는 ArrayIndexOutOfBoundsException은 복구 불가능한 예외의 한 예입니다. 이 예외는 코드에서 적절하게 처리되지 않으면 프로그램이 중단됩니다.

복구 불가능한 예외는 RuntimeException 클래스의 하위 클래스인 예외들을 포함하고 있습니다.

결론

Java의 예외는 복구 가능한 예외와 복구 불가능한 예외로 구분됩니다. 복구 가능한 예외는 예외 처리를 통해 복구가 가능하며, 복구 불가능한 예외는 시스템적인 오류 등으로 인해 프로그램이 중단될 가능성이 있는 예외입니다. 개발자는 이러한 예외들을 적절하게 처리하여 안정적인 프로그램을 작성할 수 있습니다.


참고 문헌:

  1. Oracle Documentation, “Unchecked Exceptions”
  2. Baeldung, “Checked vs Unchecked Exceptions in Java”
  3. Java Tutorials, “The Catch or Specify Requirement”