public class res { private ires res; public res(ires res) { this.res = res; } public void dotest(String msg, int open, int write, int close) { try { System.out.println(msg); FileOutputStream.throwOnOpen = open; FileOutputStream.throwOnWrite = write; FileOutputStream.throwOnClose = close; res.write("foo.txt", "output message"); } catch (Exception ex) { } FileOutputStream.numOpens = 0; FileOutputStream.numWrites = 0; FileOutputStream.numCloses = 0; System.gc(); System.runFinalization(); System.out.println(); System.out.flush(); } public static void dotest(ires res) { res r = new res(res); r.dotest("Exception on open 1", 1, 0, 0); r.dotest("Exception on open 2", 2, 0, 0); r.dotest("Exception on write 1", 0, 1, 0); r.dotest("Exception on write 2", 0, 2, 0); r.dotest("Exception on close 1", 0, 0, 1); r.dotest("Exception on close 2", 0, 0, 2); } }