сеть Java: как перенаправить stacktrace неперехваченного исключения к файлу журнала?

Как другие упомянутые, его иждивенец реализации. Visual Studio 2005 использует 8 байтов в качестве выравнивания структуры по умолчанию. Внутренне, объекты выровненные их размером - плавание имеет 4-байтовое выравнивание, двойное использование 8, и т.д.

можно переопределить поведение с пакетом #pragma. GCC (и большинство компиляторов) имеют подобные параметры компилятора или прагмы.

5
задан Thejesh GN 21 October 2009 в 09:10
поделиться

2 ответа

Установить поток . UncaughtExceptionHandler , который печатает в желаемый файл. printStackTrace является потокобезопасным, поэтому несколько потоков могут использовать один и тот же PrintStream .

9
ответ дан 18 December 2019 в 14:48
поделиться

Создал для этого пример программы, спасибо 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)

4
ответ дан 18 December 2019 в 14:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: