Throwable
+ Error
+ Exception
+ IOException
+ RuntimeException
+ ArithmeticException
.
.
.
.
Throwable
- 예외 클래스들의 공통된 조상.
- 모든 클래스들이 가지고 있는 공통된 메소드를 정의.
- 직접 사용하지는 않기에 때문에 중요하지 않음.
Error
- 소스문제가 아니라 애플리케이션이 동작하는 가상머신에 문제가 생겼을 때 발생하는 에러.
- 예) 메모리가 부족한 경우
Exception
- IOException, RuntimeException 등이 있다.
- RuntimeException를 제외한 Exception 클래스의 하위 클래스 : checked 예외
- RuntimeException의 하위클래스 : unchecked 예외
- checked 예외 : 반드시 예외처리를 해야하는 예외.
- unchecked 예외 : 예외처리를 해도 되고 안해도 되는 예외.
import java.io.IOException; class E{ // unchecked 예외이기때문에 예외처리를 안해도 된다. void throwArithmeticException(){ throw new ArithmeticException(); } // checked 예외이기때문에 예외처리를 반드시 해야 된다. void throwIOException1(){ try { throw new IOException(); } catch (IOException e) { e.printStackTrace(); } } void throwIOException2() throws IOException{ throw new IOException(); } } | cs |
- ArithmeticException는 unchecked 예외이기때문에 예외처리를 안해도 된다.
- 하지만 IOException는checked 예외이기때문에 반드시 예외처리를 해야 한다.