在 RCP 4 应用程序的顶层抛出异常时替换默认弹出窗口 window

Replace default pop-up window when exception throws on top level in RCP 4 application

当在 RCP 4 应用程序的顶层抛出异常时,如何替换默认弹出窗口 window?

您可以在应用程序 Eclipse 上下文中设置 class 实现 IEventLoopAdvisor。这是给出所有未处理的错误。

类似于:

class EventLoopAdvisor implements IEventLoopAdvisor
{
  @Override
  public void eventLoopIdle(final Display display)
  {
    display.sleep();
  }


  @Override
  public void eventLoopException(final Throwable exception)
  {
    // TODO Your code
  }
}

注意:在eventLoopIdle方法中调用display.sleep极其重要

设置它的一个好地方是你的 LifeCycle @PostContextCreate class(如果你有的话):

@PostContextCreate
public void postContextCreate(final IEclipseContext context)
{
  context.set(IEventLoopAdvisor.class, new EventLoopAdvisor());
}

注意:IEventLoopAdvisor 是一个 内部 class 所以通常我不建议使用它,但这种使用似乎是允许的。