Checked Exception과 Unchecked Exception
- Checked Exception은 컴파일 시점에 예외 처리를 강제한다. ex) IOException
- Unchecked Exception은 컴파일 시점에 예외 처리를 강제하지 않는다. ex) RuntimeException
Error
- 컴파일 시 문법적인 오류 또는 런타임 시 널포인트 참조와 같은 오류로 프로세스에 심각한 문제를 야기 시켜 프로세스를 종료 시킬 수 있음.
- 메모리 부족이나 스택오버플로우와 같이 발생하면 복구할 수 없는 심각한 오류.
- Error의 상황을 미리 미연에 방지하기 위해서 Exception 상황을 만들 수 있으며, java에서는 try-catch문으로 Exception handling을 할 수 있습니다.
Exception
- Exception 은 컴퓨터 시스템의 동작 도중 예기치 않았던 이상 상태가 발생하여 수행 중인 프로그램이 영향을 받는 것.
- 에러는 복구할 수 없는 심각한 에러라면 예외는 발생하더라도 수습할 수 있는 비교적 덜 심각한 오류.
- ex) 연산 도중 넘침에 의해 발생한 끼어들기 등
IOException과 IllegalStateException을 따로 나누지 않고 한번에 처리하고 싶다면
이렇게 상속관계 상위계층에 있는 Exception으로 받으면 IOException과 IllegalStateException의 예외들을 Exception으로 받아서 처리할 수 있다.
다른 상속 관계들도 마찬가지로 활용할 수 있다.