In this code, the try block throws an IOException. The catch block catches this exception and throws a new RuntimeException. Regardless of exceptions thrown in the try or catch blocks, the finally block is always executed. In this case, the finally block throws an ArithmeticException.
When an exception is thrown in a finally block, it overrides any previous exceptions that were thrown in the try or catch blocks. Therefore, the ArithmeticException thrown in the finally block is the exception that propagates out of the method. As a result, the program terminates with an ArithmeticException.
[Reference:, The finally Block - Oracle Java Documentation]
Contribute your Thoughts:
Chosen Answer:
This is a voting comment (?). You can switch to a simple comment. It is better to Upvote an existing comment if you don't have anything to add.
Submit