이해한 개념이 맞으려나
checked exception은 컴파일러나 jvm에 의해 말그대로 '걸러낸/확인된'
자동화된 예외처리 방법이고 자바에서는 예외처리하도록 강제하기 위해
예외처리하지 않으면 에러라 간주하고 진행되지 않는다
unchecked 는
컴파일러에의해 검사되지않은.
개발자에 의해 예상되는 에러들을 미리 처리하는 개념이다
둘 다 예외처리이지만
개발환경(컴파일러/실행환경) 에 의해 도구적/ 시스템적으로 잡냐
개발자에 의해 수작업으로 잡냐의 차이인듯?
자바에서 exception class 에 있는 예외라도
unchecked exception이 있을수 있다. 아니 의외로 많다?
1) Unchecked Exception
The exceptions that are not checked at compile time are called unchecked exceptions, classes that extends RuntimeException comes under unchecked exceptions. Examples of some unchecked exceptions are listed below.
2) Checked Exceptions
Exceptions that are checked at compile-time are called checked exceptions, in Exception hierarchy all classes that extends Exception class except UncheckedException comes under checked exception category.
[링크 : http://www.beingjavaguys.com/2013/04/exception-handling-in-java-exception.html] |
Unchecked, uncaught or runtime exceptions are exceptions that are not required to be caught or declared, even if it is allowed to do so. So a method can throw a runtime exception, even if this method is not supposed to throw exceptions. For example, ConcurrentModificationException is an unchecked exception.
The unchecked exceptions can only be the RuntimeException and its subclasses, and the class Error and its subclasses. All other exception classes must be handled, otherwise the compiler gives an error.
Sometime it is desirable to catch all exception for logging purposes, then throw it back on. For example, in servlet programming when application server calls the server doPost(), we want to monitor that no exception even runtime exception happened during serving the request. The application has its own logging separate from the server logging. The runtime exceptions would just go through without detecting it by the application. The following code would check all exceptions, log them, and throw it back again.
[링크 : http://en.wikibooks.org/wiki/Java_Programming/Unchecked_Exceptions] |