[Java] 예외 클래스 계층도
1. 계층도
https://interviewnoodle.com/exception-in-java-89a0b41e0c45
java.lang.Object
└── java.lang.Throwable
├── java.lang.Error // 시스템 레벨 심각한 오류 (복구 불가)
│ ├── OutOfMemoryError
│ ├── StackOverflowError
│ └── ...
│
└── java.lang.Exception // 애플리케이션에서 처리 가능한 예외
├── Checked Exception (컴파일 시 처리 강제)
│ ├── IOException
│ │ ├── FileNotFoundException
│ │ └── EOFException
│ ├── SQLException
│ ├── ParseException
│ └── ClassNotFoundException
│
└── Unchecked Exception (컴파일러가 처리 강제 X)
└── java.lang.RuntimeException
├── NullPointerException
├── IndexOutOfBoundsException
│ ├── ArrayIndexOutOfBoundsException
│ └── StringIndexOutOfBoundsException
├── ArithmeticException
├── IllegalArgumentException
│ └── NumberFormatException
├── ClassCastException
└── IllegalStateException
- 모든 예외 클래스는
Throwable
을 상속함 Error
는 처리 안 하고 무시하거나 종료하게 두는 경우가 많음RuntimeException
은 로직 오류에서 주로 발생함 (예외 처리를 강제하지 않음)
계층 | 설명 | 대표 클래스 |
---|---|---|
| 모든 예외/에러의 최상위 클래스 | - |
| JVM 자체 문제, 메모리 부족 등 → 복구 불가 |
|
| 일반적인 예외 상황 → 개발자가 처리 | - |
| 반드시 |
|
| 런타임 예외, 선택적 처리 |
|
2. 정리 잘 된 블로그
- 예외(Exception)와 예외 클래스 / 종류
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=heartflow89&logNo=220981003640 - Java Exception 알아보기
https://be-student.tistory.com/49 - 예외 발생시키기, 사용자 정의 예외 클래스
https://amy-it.tistory.com/56 - Excetion 클래스
https://tcpschool.com/java/java_exception_class - Exception 예외 처리의 개념, 예외 발생 상황, 예외 클래스(처리 메서드)
https://buly.kr/Aaq9Uuu