The
finallyblock always executes when thetryblock exits. This ensures that thefinallyblock is executed even if an unexpected exception occurs. Butfinallyis useful for more than just exception handling — it allows the programmer to avoid having cleanup code accidentally bypassed by areturn,continue, orbreak. Putting cleanup code in afinallyblock is always a good practice, even when no exceptions are anticipated.
https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html