從已啟動的程式處理錯誤

如果您已定義了自己的啟動配置類型,您可能也會想要處理程式執行期間所發生的錯誤或其他狀態資訊。例如,在啟動期間如果發生某些類型的錯誤,您或許想要提示或警示使用者,或提供有關某些程式狀態變更訊息。 由於最佳作法是將 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.vmConnectTimeout"
		class="org.eclipse.jdt.internal.debug.ui.launcher.VMConnectTimeoutStatusHandler"
		plugin ="org.eclipse.jdt.launching"
		code="117">
	</statusHandler>	
	...
   </extension>