小编Bie*_*aja的帖子

Eclipse RCP应用程序中的全局异常处理

我想在我的RCP应用程序中覆盖全局异常处理.每当发生未被捕获的异常时,我想记录它(使用java日志记录),然后退出应用程序.我已经eventLoopException(Throwable exception)ApplicationWorkbenchAdvisor课堂上覆盖了这个方法.但这只捕获事件循环异常.截至目前,我还覆盖了postStartup()这样的方法:

public void postStartup()
{
    Policy.setStatusHandler(new StatusHandler()
    {
       @Override
          public void show(IStatus status, String title)
          {
            LOGGER.log(Level.SEVERE, "Uncaught Exception", status.getException());
            UnexpectedErrorDialog();
            PlatformUI.getWorkbench().close();
          }
    });
}
Run Code Online (Sandbox Code Playgroud)

它将异常记录在我的日志文件中并退出应用程序.但它显然不对,并且在控制台中显示两次异常,因为我所做的只是拦截a中的异常显示gui dialog给用户.那么如何才能正确覆盖/更改全局异常处理,以便使用我的代码(log)而不是默认代码?

java logging eclipse-rcp

6
推荐指数
1
解决办法
1740
查看次数

在构造函数中设置静态最终变量

我基本上想要的是:

public class Test 
{    
   private static final Integer a;

   public Test(Integer a) 
   {
      this.a = a;
   }
Run Code Online (Sandbox Code Playgroud)

}

这显然不起作用,导致第二个创建的实例将尝试覆盖最终变量.那么有没有办法通过构造函数给所有实例提供相同的不可变值?

java static constructor final

4
推荐指数
1
解决办法
9801
查看次数

标签 统计

java ×2

constructor ×1

eclipse-rcp ×1

final ×1

logging ×1

static ×1