1

GUI Swing アプリがあります。

すべての例外をキャッチする方法はありますか?

データベース JDBC オブジェクトを保持するデータベース クラスを作成しました。

Swing GUI クラスでフィールドとして宣言されています。

e.g. 

public class MySwingGUI {

  protected Database database = new Database();

そのため、GUI コードのどこかから例外が伝播した場合は、データベース接続を閉じることができるように何らかの方法で処理したいと考えています。

何か案は?

4

2 に答える 2

1

Swing で例外を処理する別のアプローチ。このようなものを使用できます。

public class EventQueueProxy extends EventQueue {

    private static final Logger logger = Logger.getLogger( EventQueueProxy.class.getName() );

    protected void dispatchEvent( AWTEvent newEvent )
    {
        try {
            super.dispatchEvent( newEvent );
        } catch( RuntimeException | Error e ) {
            logger.error(e.getCause(),e);            
            JOptionPane.showMessageDialog( null, "someDescriptiveMessage");
        }
    }
}

そして、ヘルパーメソッドを使用して設定できます

    public static void captureUncaughtExceptionInEvent()
    {

            EventQueue queue = Toolkit.getDefaultToolkit().getSystemEventQueue();
            queue.push(new EventQueueProxy());
    }
于 2013-08-09T18:22:09.600 に答える