如果您已定义自己的启动配置类型,则您可能想要处理在运行程序期间出现的错误或其它状态信息。例如,您可能想要在启动期间发生特定类型的错误时提示或提醒用户,或提供程序中特定状态更改的参考消息。既然最好是将用户界面处理与核心功能分开,您可能不想从启动代表直接引用状态处理类。
此问题是通过 org.eclipse.debug.core.statusHandlers 扩展点来解决的。该扩展点允许您使状态处理程序与特定状态码相关联。使用此扩展点,可以定义启动代表和核心类中所有可能的状态和错误代码,而从另一插件为不同状态码注册唯一的处理程序。
扩展点不会指定状态处理程序与启动配置之间的任何关联。由启动代表的实现来检测错误,查找适当的状态处理程序并调用它。扩展仅提供注册表以便可找到对应特定状态码的状态处理程序。DebugPlugin 提供获取特定状态处理程序的实用程序方法。
IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);
状态处理程序应实现 IStatusHandler。状态处理类是在扩展定义中指定的,同时还指定了与其相关联的状态码和期望生成状态码的插件。
以下标记显示 Java 工具如何声明状态处理程序:
<extension point = "org.eclipse.debug.core.statusHandlers"> <statusHandler id="org.eclipse.jdt.debug.ui.statusHandler.vmConnectTimeout" class="org.eclipse.jdt.internal.debug.ui.launcher.VMConnectTimeoutStatusHandler" plugin ="org.eclipse.jdt.launching" code="117"> </statusHandler> ... </extension>