// unhandled exception when messing with finally block import java.io.*; class a { void f1(int i) { try { new FileReader(""); } finally { <error descr="Unhandled exception: java.lang.ClassNotFoundException">throw new ClassNotFoundException();</error> } } void f2(int i) { try { <error descr="Unhandled exception: java.io.FileNotFoundException">new FileReader("")</error>; } finally { if (i==4) <error descr="Unhandled exception: java.lang.ClassNotFoundException">throw new ClassNotFoundException();</error> } } void f3(int i) { try { <error descr="Unhandled exception: java.io.FileNotFoundException">new FileReader("")</error>; } finally { if (i==1) return; } } void f4(int i) { try { <error descr="Unhandled exception: java.io.FileNotFoundException">new FileReader("")</error>; } finally { if (i==1) <error descr="Unhandled exception: java.io.FileNotFoundException">throw new FileNotFoundException();</error> } } void cf1(int i) { try { new FileReader(""); } catch (FileNotFoundException e) { } finally { if (1==1) return; } } void cf2(int i) { try { new FileReader(""); } finally { while (1==1) return; } } void foo(OutputStream out, byte[] data) throws IOException { out.write(data); } public void swallow() { try { throw new Exception("Hello World! I'm Checked Exception and must be declared!"); } catch (Exception e) { throw e; } finally { return; } } public void spitout() { try { throw new Exception("Hello World! I'm Checked Exception and must be declared!"); } catch (Exception e) { <error descr="Unhandled exception: java.lang.Exception">throw e;</error> } finally { //return; } } }