(Just for case of clearness: in the table on same page is it right to say that exceptions thrown by JVM are RunTimeExceptions and programatically exceptions are checked exceptions?)
Joined: Oct 26, 2007
Even i am not able to figure it out which exceptions are thrown by JVM and which are thrown by API developer..
Please help us out...
Kelvin Chenhao Lim
Joined: Oct 20, 2007
The "programmatic-vs-JVM" distinction isn't the same as "checked-vs-unchecked". Here's something I posted a few weeks ago that may help:
I'm not a fan of the term "thrown programmatically" as a supposed contrast to "thrown by the JVM". In my opinion, it's much clearer to think of it as "thrown explicitly" (a.k.a. "programmatically") versus "thrown implicitly" (a.k.a. "by the JVM").
Using this terminology, an "explicitly thrown" exception is one that can only be thrown in Java code using a "throws" or "assert" statement, i.e. there must be some expression of programmer intent to (possibly) cause an exception at that point. On the other hand, an "implicitly thrown" exception is one that can occur even in expressions that have neither a "throws" or "assert". Most of these are the result of abruptly completed evaluations, e.g. dereferencing a null reference or an integer division by zero.
Hopefully this way of differentiating exceptions will help some of you. Also, it may be helpful to read what the JLS has to say about the causes of exceptions.