Since
Java 5 you can use Thread.UncaughtExceptionHandler to catch any exception you don't catch yourself:
Although the default is null, Java still does the following:
You can use that to mimic the default behaviour beside your logging.
[ October 11, 2008: Message edited by: Rob Prime ]