处理已启动程序的错误

如果已经定义了您自已的启动配置类型,则您可能想要处理在运行程序期间发生的错误或其它信息。例如,您可能想要在启动期间发生特定类型的错误时提示或提醒用户,或提供程序中特定状态更改的信息消息。既然最好是将用户界面处理与核心功能分开,您可能不想从启动代理直接引用状态处理类。

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>
Copyright IBM Corporation and others 2000, 2003.