Here is a fun one to add to your build come April 1... Take AspectJ, define an aspect which applies advice on every method call where an exception is thrown. Catch the exception, and throw a random error =) We all love when we execute a JDBC call and an EJBException
is thrown, or even better a ThreadDeath
in place of an NPE -- and best of all -- make the determination of which one to throw random, so the same code throws a different error every time ;-) To pull it off you need to sneak it into CVS and hide the aspect weaving in the build somewhere.
If I have spare time between now and then I'll toss up a library to do it for everyone ;-) Not much chance of that though =(