繁体   English   中英

Eclipse E4 RCP全局错误处理

[英]Eclipse E4 RCP global error handling

我的问题与该线程中的问题相同:“我想设置一个自定义错误处理程序,每次发生意外错误时都会调用该处理程序。如何实现呢?”

我如何在E4中做到这一点? 在E3中,可以通过重写ApplicationWorkbenchAdvisoreventLoopException方法来实现

该线程链接到另一个正在扩展StatusReporter 线程 现在,我可以扩展StatusReporter但是当发生某些意外的异常时,不会自动调用其方法。 另外,我还会收到不鼓励访问的警告,提示StatusReporter不是API。

如Wiki中所述, 另一种方法是使用StatusHandler 但是我不想手动调用StatusHandler 我想要一个全局处理程序,该处理程序自动拾取未处理的异常...

任何帮助将不胜感激。

谢谢约翰

您可以将自己的IEventLoopAdvisor实现IEventLoopAdvisor上下文中。 LifeCycle类的@PostContextCreate方法是添加此方法的好地方。

IEventLoopAdvisor有两种方法:

@Override
public void eventLoopIdle(final Display display)
{
  // Called whenever the RCP is idle, you can do other things here
  // but it is very important to call 'display.sleep()'

  display.sleep();
}

@Override
public void eventLoopException(final Throwable exception)
{
  // Add code for unhandled exceptions
}

注意: IEventLoopHandler是一个内部类,因此通常应避免使用该类,但此用法似乎受到认可。

如果要覆盖所有消息的日志记录,则可以创建自己的派生自org.eclipse.e4.core.services.log.Logger的类,并将其注入Eclipse上下文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM