We use JUnit 3 at work and there is no ExpectedException annotation. I wanted to add a utility to our code to wrap this:
ExpectedException
try { someCode();
Generics are not types. They are not templates. They are compile time type checks, in Java. Exception blocks catch on type. You can catch(Exception e) or even catch(Throwable e) and then cast as needed.