exceptions in java all work the same way.
the difference between checked and unchecked exceptions (which are all subclasses of RuntimeException) if that for a method that throws a checked exception whoever calls that method has to either try/catch the exception, or declare his own method as throwing that exception.
so if i have a method:
void throwsACheckedException() throws SomeCheckedException;
whoever calls it must do one of 2 things. either:
try { throwsACheckedException(); } catch (SomeCheckedException e) { //do something }
or
void someCallingMethod() throws SomeCheckedException { //pass it on throwsACheckedException(); }
unchecked exceptions you dont have to declare, and whoever calls the method does not have to explicitly catch. for example:
void someInnocentLookingMethod() { throw new NullPointerException("surprise!"); //...extends RuntimeException }
and then you can simply invoke it, without the try/catch hassle:
void unsuspectingVictim() { someInnocentLookingMethod(); }
unchecked exceptions are usually used for things that can creep up on you at any point and so forcing developers to try/catch them would make the code very tedious (NullPointerException, for example), although there are those who thing checked exceptions are evil entirely :-)