JAVA/포스팅

자바 예외 클래스의 계층구조

짜집퍼박사(짜박) 2023. 11. 14. 01:22

자바에서 예외 클래스는 java.lang.Exception 클래스를 상속하는 계층 구조를 가지고 있습니다. Exception 클래스는 모든 예외 클래스의 최상위 클래스이며, 예외를 나타내는 클래스들은 이 클래스를 상속하고 있습니다. Exception 클래스의 하위 클래스들은 크게 세 가지로 나눌 수 있습니다.

 

1. Checked Exception (Checked 예외)

Exception 클래스를 상속하면서 RuntimeException 클래스를 상속하지 않은 예외들이 이에 해당합니다. 컴파일러가 이 예외들을 검사하도록 요구하며, 명시적인 예외 처리를 강제합니다.

- IOException : 입출력 동작 중에 발생할 수 있는 예외.
- SQLException : 데이터베이스와 관련된 동작 중에 발생할 수 있는 예외.

 

2. Unchecked Exception (Unchecked 예외 또는 RuntimeException)

RuntimeException 클래스를 상속한 예외들이 이에 해당합니다. 컴파일러가 이 예외들을 검사하지 않으며, 프로그래머가 선택적으로 예외를 처리할 수 있습니다.

- NullPointerException : 객체 참조가 없는 상태에서 인스턴스 메서드나 필드에 접근할 때 발생.
- ArrayIndexOutOfBoundsException : 배열의 범위를 벗어나는 인덱스로 배열에 접근할 때 발생.
- ArithmeticException : 0으로 나누거나 부적절한 산술 연산을 수행할 때 발생.

 

3. Error

Error 클래스는 예외와는 다르게 프로그래머가 처리할 수 없는 심각한 문제를 나타냅니다. 주로 가상 머신이나 런타임 환경에 중대한 문제가 발생했을 때 발생합니다.

- OutOfMemoryError : 메모리 부족으로 객체를 생성할 수 없을 때 발생.
- StackOverflowError : 메서드 호출 스택이 너무 깊어져서 더 이상의 메서드 호출을 수행할 수 없을 때 발생.

자바에서 예외 클래스들은 계층 구조를 통해 다양한 예외를 적절하게 처리할 수 있도록 구성되어 있습니다. 예외 처리를 할 때, 최상위 클래스인 Exception 클래스를 사용하면 모든 예외를 처리할 수 있습니다. 하지만 세부적인 예외 처리를 위해서는 해당 예외 클래스를 사용하는 것이 좋습니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 try-catch문에서의 흐름  (0) 2023.11.14
자바 try-catch문  (0) 2023.11.14
자바 예외(Exception)  (0) 2023.11.14
자바 익명 내부 클래스  (0) 2023.11.14
자바 지역 내부 클래스  (0) 2023.11.14