相关疑难解决方法(0)

如何捕获事件调度线程(EDT)异常?

我正在使用一个名为MyExceptionHandlerimplements 的类Thread.UncaughtExceptionHandler来处理我的项目中的正常异常.

据我所知,这个类无法捕获EDT异常,所以我尝试在main()方法中使用它来处理EDT异常:

public static void main( final String[] args ) {
    Thread.setDefaultUncaughtExceptionHandler( new MyExceptionHandler() );  // Handle normal exceptions
    System.setProperty( "sun.awt.exception.handler",MyExceptionHandler.class.getName());  // Handle EDT exceptions
    SwingUtilities.invokeLater(new Runnable() {  // Execute some code in the EDT. 
        public void run() {
            JFrame myFrame = new JFrame();
             myFrame.setVisible( true );
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

但直到现在它还没有用.例如,在初始化JFrame时,我从构造函数中的bundle文件加载其标签,如下所示:

setTitle( bundle.getString( "MyJFrame.title" ) );
Run Code Online (Sandbox Code Playgroud)

MyJFrame.title从bundle文件中删除了密钥以测试异常处理程序,但它不起作用!例外通常打印在日志中.

我在这里做错了吗?

java exception try-catch event-dispatch-thread

20
推荐指数
1
解决办法
7031
查看次数

异常处理模式

这是我看到的常见模式,其中与异常关联的错误代码存储为静态最终整数.当创建要抛出的异常时,它将使用这些代码之一以及错误消息构造.这导致该方法要抓住它必须查看代码然后决定一个行动方案.

替代似乎是 - 为每个异常错误情况声明一个类(尽管相关的异常将从一个公共基类中解除)

有中间地带吗?推荐的方法是什么?

java enums design-patterns exception

11
推荐指数
3
解决办法
9541
查看次数