Зачем беспокоиться о настройке свойства «sun.awt.exception.handler»?

Вот код, который перехватывает исключение, созданное в потоке отправки событий:

package com.ndh.swingjunk;

import java.awt.EventQueue;

import javax.swing.JFrame;

public class EntryPoint {

    public static void main(String[] args) {
        Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler());
//      System.setProperty("sun.awt.exception.handler", MyExceptionHandler.class.getName());

        EventQueue.invokeLater(new Runnable() 
        {
            public void run() 
            {
                new SomeWindow("foo").setVisible(true);
            }
        });
    }
}

class SomeWindow extends JFrame {
    public SomeWindow(String title) {
        this.setTitle(title);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        throw new RuntimeException("hello");
    }
}

Я видел предупреждения о том, что исключения, создаваемые в потоке отправки событий, не обрабатываются UncaughtExceptionHandler, но в моем примере это не похоже; он работает одинаково независимо от того, закомментирована ли строка регистрации или оставлена. Мой пример каким-то образом испорчен, или регистрация обработчика исключений с помощью sun.awt.exception.handler больше не нужна?

8
задан Nathan Hughes 26 April 2011 в 18:00
поделиться