@@ -0,0 +1,640 @@
+%0Apackage net.restlesscoder.sandbox;%0A%0Aimport java.io.IOException;%0A%0Apublic class GenericThrows %7B%0A%0A%09interface Executable%3CE extends Exception%3E %7B%0A%09%09void run() throws E;%0A%09%7D%0A%0A%09public static %3CE extends Exception%3E void assertThrows(Class%3CE%3E exceptionType, Executable%3CE%3E executable) %7B%0A%09%09try %7B%0A%09%09%09executable.run();%0A%09%09%7D%0A%09%09catch (Exception exc) %7B%0A%09%09%09if (exceptionType.isInstance(exc)) %7B%0A%09%09%09%09// assert true!%0A%09%09%09%7D%0A%09%09%09else %7B%0A%09%09%09%09throw new RuntimeException(%22User passed a lying executable object%22);%0A%09%09%09%7D%0A%09%09%09// assert false!%0A%09%09%09exc.printStackTrace();%0A%09%09%7D%0A%09%7D%0A%0A%09public static void main(final String... args) %7B%0A%09%09assertThrows(IOException.class, () -%3E %7B%7D);%0A%09%7D%0A%7D%0A

Add example of throws clause w/ generic parameter