Recognize situations that will result in any of the following being thrown: ArrayIndexOutOfBoundsException,ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError or NoClassDefFoundError. Understand which of these are thrown by the virtual machine and recognize situations in which others should be thrown programatically.
I'd guess that it's worth recognising the differences between java.lang.Throwable, java.lang.Error, java.lang.Exception, java.lang.RuntimeException (i.e. unchecked exceptions) plus the exceptions mentioned in the objective above.
Checked and Unckecked exceptions have nothing to do with who throws them. In some cases, it might be the developer, it might be the JVM. It's more important to know that the JVM will definately throw Errors, for everything else you should be guided by your common sense , NullPointerException, AssertionError will most probably be thrown by the JVM (because it checks for nulls and for assertions), but IllegalStateException, NumberFormatException - most probably by the developer because you might write a class that parses some Numbers and might throw NumberFormatException if the numbers are not in the correct format. [ May 06, 2008: Message edited by: Dumitru Postoronca ]
I knew I would regret that burrito. But this tiny ad has never caused regrets:
Sauce Labs - World's Largest Continuous Testing Cloud for Websites and Mobile Apps