The finally clause is always executed
// : c09:FinallyWorks.java // The finally clause is always executed. // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 // www.BruceEckel.com. See copyright notice in CopyRight.txt. class ThreeException extends Exception { } public class FinallyWorks { static int count = 0; public static void main(String[] args) { while (true) { try { // Post-increment is zero first time: if (count++ == 0) throw new ThreeException(); System.out.println("No exception"); } catch (ThreeException e) { System.err.println("ThreeException"); } finally { System.err.println("In finally clause"); if (count == 2) break; // out of "while" } } } } ///:~