Charles,
Once line m3 throws the exception, the code is no longer continuing to run. Since m4 never runs, it doesn't have the opportunity to throw an exception. I agree that if line m3 were commented out, line m4 would be the answer.
Also note that only one answer is correct in all chapters except the two mock exam chapters. And in the mock exam chapters, we tell you how many are correct if more than one.
We do this to better simulate the exam where you know how many are correct. Which lets you use the # of answers as a clue to the answer - a good skill to have for the real exam!
Agreed ... trying to find ways to increase my speed (18 & 26 use "first" ... book thorough has been pretty consistent about treating each line separately)
Charles,
We tried to write "first" with compiler errors. The reason being you get all the compiler errors at the same time when you type javac. There's still a "first" one, but it feels less straightforward. For #16 (runtime), it is more clear what causes the error.
Note i said "tried". I'm sure there are examples in the book where we didn't follow this.
There is a typo in the answer explanation in the online version. It says "Line m3 attempts to reference the third element of the outer array.", but it should be the second element.