如果您已經定義了自己的啟動配置類型,很可能您會想要去處理在程式執行期間引發的錯誤或其他資訊。例如:當某些錯誤類型發生在啟動期間,您或許想要提示或警示使用者,或為某些在程式中變更的狀態提供參考訊息。由於將 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>