По умолчанию JVM обрабатывает необработанные исключения, печатая трассировку стека в поток System.err. Java позволяет нам настраивать это поведение, предоставляя нашу собственную подпрограмму, которая реализует интерфейс Thread.UncaughtExceptionHandler
.
Взгляните на эту статью в блоге, которую я написал некоторое время назад, которая объясняет это подробно (http://blog.yohanliyanage.com/2010/09/know-the-jvm-1-uncaught-exception-handler/).
Таким образом, все, что вам нужно сделать, это написать свою собственную логику, как показано ниже:
public class MyUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
public void uncaughtException(Thread t, Throwable e) {
// Write the custom logic here
}
}
И установите его, используя любой из трех вариантов, которые я описал в приведенной выше ссылке. Например, вы могли бы сделать следующее, чтобы установить обработчик по умолчанию для всей JVM (таким образом, любое обработанное исключение будет обработано этим обработчиком).
Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler() );