This is the code: It will compile but will throw AnotherException when run.
Explanation m2() throws NewException, which is not caught anywhere. But before exiting out of the main method, finally must be executed. Since finally throw AnotherException (due to a call to m3() ), the NewException thrown in the try block ( due to call to m2() ) is ignored and AnotherException is thrown from the main method.
I thought the exception has to be caught; m2() throws NewException, which is not caught anywhere. I would kindly ask for a clarification.
Stephan van Hulst
posted 2 months ago
The exception is propagated upward. The main() method can do this because it declares that it can throw Exception.
The mind is a strange and wonderful thing. I'm not sure that it will ever be able to figure itself out, everything else, maybe. From the atom to the universe, everything, except itself.
machines help you to do more, but experience less. Experience this tiny ad: