Basically Checked Exception are the exception, which actually occurs when we are dealing with any resources, like File,Database,Network etc.So,during loading another class for any purpose like when we use Class.forName(String ClassName) for dynamically load the Driver class at runtime during connection of database or any other purpose we are dealing with another class , which acts as a resource for our class and another one is when we use File for write or read some data the file also is a resource so basically in my observation when we handling with resources then they throws checked exception which we need to catch explicitly by try-catch block or after method declaration we can write with throws which will be handle by JVM's default exception handler. Examples Of Checked Exception:
IOException (we are depending upon System Keyboard OR Files ) FileNotFoundException(We are depending upon the file) InterruptedException (Thread related problem) ClassNotFoundException (class related problem) SQLException (SQL related or database related problem) CloneNotSupportedException (Object is the resourse) EOFException(We are depending upon the file)
And , another thing all the checked exception are directly subclass of either java.lang.Exception or java.lang.Throwable
Unchecked Exception are sub-class of RuntimeException class.this is the way to identify unchecked exception.An Unchecked exception is rare and most of the the time these are not linked with any resource . These are directly handled by default exception handler by jvm . it is upto the programmer to handle the exception. if we do not handle exception application will terminate abnormally throwing that perticular exception. if we handle it then program throws exception, we can provide user-friendly message to user related to exception.because our client might a non technical person if he is dividing a number by 0 and we provide him java.lang.ArithmeticException may be he could not understand ,by providing user-friendly message "Like Dont divide any number by 0" it would be better approach.so it is reccomended to catch every possible exception(whether checked or unchecked ) in our application to provide user-friendly message and a normal termination.