Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse插件中处理未处理的事件循环异常_Java_Eclipse_Eclipse Plugin - Fatal编程技术网

Java 在Eclipse插件中处理未处理的事件循环异常

Java 在Eclipse插件中处理未处理的事件循环异常,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我们正在开发一个基于eclipse的产品(这是一个eclipse插件,我们有大约60多个插件项目),我使用log4j作为我的日志框架,并使用它在业务逻辑端记录错误。但我没有找到一种方法来处理Eclipse在UI中出现任何错误时抛出的UI错误,例如: Caused by: org.eclipse.swt.SWTException: Widget is disposed 我说的是这些类型的错误。那么,我该如何处理这个异常,以便我可以登录我们的日志文件,以便能够识别bug呢 我尝试了stackove

我们正在开发一个基于eclipse的产品(这是一个eclipse插件,我们有大约60多个插件项目),我使用log4j作为我的日志框架,并使用它在业务逻辑端记录错误。但我没有找到一种方法来处理Eclipse在UI中出现任何错误时抛出的UI错误,例如:

Caused by: org.eclipse.swt.SWTException: Widget is disposed
我说的是这些类型的错误。那么,我该如何处理这个异常,以便我可以登录我们的日志文件,以便能够识别bug呢

我尝试了stackoverflow问题,基本上它说覆盖
public void eventLoopException(Throwable exception)
from
WorkbenchAdvisor

我试过这样,在我们的一个UI插件项目中:

public class CustomWorkbenchAdvisor extends WorkbenchAdvisor {
     @Override
    public void eventLoopException(Throwable exception) {
        System.out.println("Error occured");
        super.eventLoopException(exception);
    }
}
我详细地创建了UI错误,但当我看到我的控制台时,我没有看到显示“出错”,而是显示:

!MESSAGE Unhandled event loop exception

用stacktrace。有谁能告诉我如何处理这些类型的错误吗?

您必须在创建应用程序的
平台ui.createAndRunWorkbench
调用中指定自定义的
WorkbenchVisor
。此调用位于application plugin.xml中的
扩展点的
条目中指定的主应用程序类中

你是如何告诉Eclipse使用你的CustomWorkbenchHadvisor的?@greg-449,是的,这就是我怀疑的地方。我应该在什么地方配置它吗?我不知道。您必须在创建应用程序的PlatformUI.createAndRunWorkbench调用中指定它。此调用位于application plugin.xml中扩展点条目中指定的主应用程序类中。@greg-449,您能将其作为应答发布,以便我检查并接受它吗?:)您好,如果我将其作为一个RCP应用程序,它可以工作,但它不适用于插件:(对于非RCP插件,您可以查看是否可以使用org.eclipse.ui.statusHandlers扩展点来定义状态处理程序。