This blog discuss the code at finally can affect code at catch block - http://mult.ifario.us/articles/2006/07/26/java-brain-teaser
ExternalResource resource = resourceManager.open(); Throwable e1 = null; try { // Use the resource (stream, db connection, ...) } catch (Throwable e) { e1 = e; } finally { try { resource.close(); if (e1 != null) throw e1; } catch (Throwable e2) { // Pretend e2 doesn't already have a cause... if (e1 != null) e2.initCause(e1); throw e2; } }http://bagotricks.com/blog/2006/02/06/dropping-the-ball-er-exception/ or this, can be better looking
try { InputStream is = new FileOutputStream("hello.txt"); try { is.write("hello"); finally { is.close(); } } catch (IOException e) { e.printStrackTrace(); }http://jroller.com/page/davinci?entry=finally_in_catch