Pokud jste definovali vlastní typ konfigurace spuštění, je pravděpodobné, že budete chtít ošetřovat chyby či další stavové informace, ke kterým dojde během chodu programu. Například budete chtít vyzvat nebo upozornit uživatele, pokud dojde k určitým typům chyb během spouštění nebo budete chtít poskytnout informativní zprávy pro určité změny stavu v programu. Jelikož je žádoucí oddělit manipulaci s uživatelským rozhraním od klíčových funkcí, není vhodné mít přímé odkazy z vašeho delegáta spuštění na obslužné třídy stavu.
Tento problém řeší bod rozšíření org.eclipse.debug.core.statusHandlers. Ten vám umožňuje přiřadit obslužný program stavu k určitému kódu stavu. Pomocí tohoto bodu rozšíření můžete definovat všechny možné kódy stavu a chyb ve vašem delegátu spuštění a v klíčových třídách a zároveň zaregistrovat jedinečné obslužné programy pro různé kódy stavu z jiného modulu plug-in.
Bod rozšíření neoznačuje žádné asociace mezi obslužným programem stavu a konfigurací spuštění. Záleží na implementaci delegátu spuštění, aby zjistila chyby, nalezla příslušný obslužný program stavu a vyvolala jej. Rozšíření pouze poskytuje registr, aby mohly být nalezeny obslužné programy stavu pro určité kódy stavu. DebugPlugin poskytuje obslužnou metodu k získání specifického popisovače stavu.
IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);
Obslužné programy stavu by měly implementovat IStatusHandler. Třída obsluhující stav je zadána v definici rozšíření společně s přidruženým stavovým kódem a modulem plug-in, který je očekávaným zdrojem stavových kódů.
Následující markup ukazuje, jak nástroje Java deklarují obslužné programy stavu:
<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>