자바에서 Checked Exception과 Unchecked Exception에 대해서 설명해주세요.
Checked Exception은 Exception을 상속받고, Unchecked Exception은 RuntimeException을 상속받는 것으로 1차적으로 구분할 수 있다.
Checked 의 경우, try catch 문이나 메서드의 throws 키워드를 이용하여 명시적으로 핸들링해주지 않으면 컴파일러가 에러를 발생시키고 예외처리를 강제한다. 대표적으론 IOException 이 있다.
Unchecked 의 경우, 특별히 핸들링하지 않아도 컴파일은 되지만 적절한 예외처리를 해주지 않으면 기능에 이상이 생기는 것은 동일하다.