如果已经定义了您自已的启动配置类型,则您可能想要处理在运行程序期间发生的错误或其它信息。例如,您可能想要在启动期间发生特定类型的错误时提示或提醒用户,或提供程序中特定状态更改的信息消息。既然最好是将用户界面处理与核心功能分开,您可能不想从启动代理直接引用状态处理类。
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.workingDirectory" class="org.eclipse.jdt.internal.debug.ui.launcher.WorkingDirectoryStatusHandler" plugin ="org.eclipse.jdt.launching" code="115"> </statusHandler> <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>