Is there difference between exceptions typically thrown by JVM/Programmatically and Runtime/Checked exceptions?
A RuntimeException (and any subclass) is an unchecked exception, so it is not required to be caught. The default consequence of an unchecked exception is that a message will be sent to the console.
An Error (and any subclass) is also an unchecked exception, although I believe most Errors result in the JVM halting processing. Hence, there isn't much point in trying to catch an Error, becuase is is unlikely that the code could recover from it.
All other exceptions are checked exceptions. This means that code calling the method(s) that throw the exception must have a try/catch block.