* represent invalid conditions in areas outside the immediate control of the program (invalid user input, database problems, network outages, absent files) * are subclasses of Exception * methods are obliged to establish a policy for all checked exceptions thrown by its implementation (either pass the checked exception further up the stack, or handle it somehow)
Unchecked exceptions :
* represent defects in the program (often invalid arguments passed to a non-private method) * are subclasses of RuntimeException, and are usually implemented using IllegalArgumentException, NullPointerException, or IllegalStateException * methods are not obliged to establish a policy for the unchecked exceptions thrown by its implementation (and they almost always do not do so)
It is somewhat confusing, but note as well that RuntimeException (unchecked) is itself a subclass of Exception (checked).
hi, simply you can say, Checked exceptions are those for which compiler forces you to provide some code to handle the exception (try/catch). Wehere as for unchecked exception you are not forced to provide handler.