Exception Mechanics
In the previous topics, we threw and caught exceptions and got a feel for how exceptions work. Now let's revisit the mechanics to make sure we got everything right.
How try/catch Works
The try/catch statement has two blocks: the try block and the catch block, as shown here:
try { // the try block } catch (Exception e) { // the catch block, can be multiple }
The try block is where your main execution path code goes. You optimistically write your program here. If an exception happens in any of the lines in the try block, the execution stops at that line and jumps to the catch block:
try { // line1, fine // line2, fine // line3, EXCEPTION! // line4, skipped // line5, skipped } catch (Exception e) { // comes here after line3 }
The catch block catches throwables if they can be assigned to the exception reference it contains (Exception e, in this case). So, if you have an exception class here that is high up in the exception hierarchy (such as Exception...