Как другие упомянутые, его иждивенец реализации. Visual Studio 2005 использует 8 байтов в качестве выравнивания структуры по умолчанию. Внутренне, объекты выровненные их размером - плавание имеет 4-байтовое выравнивание, двойное использование 8, и т.д.
можно переопределить поведение с пакетом #pragma. GCC (и большинство компиляторов) имеют подобные параметры компилятора или прагмы.
Установить поток . UncaughtExceptionHandler
, который печатает в желаемый файл. printStackTrace
является потокобезопасным, поэтому несколько потоков могут использовать один и тот же PrintStream
.
Создал для этого пример программы, спасибо gustafc
public class UncaughtException {
public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler( new Thread.UncaughtExceptionHandler(){
public void uncaughtException(Thread t, Throwable e) {
System.out.println("*****Yeah, Caught the Exception*****");
e.printStackTrace(); // you can use e.printStackTrace ( printstream ps )
}
});
System.out.println( 2/0 ); // Throw the Exception
}
}
Вывод:
***** Да, исключение обнаружено ***** java.lang. ArithmeticException: / от ноль в thread.UncaughtException.main (UncaughtException.java:12)