起動されたプログラムによるエラーの処理

独自の起動構成を定義している場合は、プログラムの実行時に発生するエラーやその他の情報の処理を設定できます。 例えば、特定タイプのエラーが起動中に発生したときにユーザーに向けてプロンプトや警告を表示したり、プログラム内の特定の状況変更を通知する情報メッセージを表示したりすることができます。 UI 処理とコア機能とは分離しておくとよいので、起動代行から状況処理クラスへの直接参照は避けた方がよいでしょう。  

この問題は、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.