Als u zelf een type startconfiguratie hebt gedefinieerd, wilt u waarschijnlijk dat eventuele fouten of andere statusgegevens die tijdens het uitvoeren van het programma optreden of worden gemeld, op de juiste wijze worden verwerkt. Wellicht wilt u dat de gebruiker een waarschuwings- of foutmelding krijgt als er bepaalde soorten fouten optreden, of dat er een informatiebericht wordt weergeven bij bepaalde statuswijzigingen in het programma. Omdat de afhandelingsprocedures van de gebruikersinterface meestal worden gescheiden van de kernfunctionaliteit, is het niet raadzaam om directe verwijzingen van uw gemachtigde naar statusafhandelingsklassen te definiëren.
Om dit probleem op te lossen gebruikt u het extensiepunt org.eclipse.debug.core.statusHandlers. Met dit extensiepunt kunt u een statushandler aan een specifieke statuscode koppelen. Hiertoe definieert u alle mogelijke status- en foutcodes in uw start-delegate (gemachtigde) en core-klassen, en registreert u unieke handlers voor de overige statuscodes van een andere plugin.
Het extensiepunt bevat geen aanwijzingen over de koppeling tussen een statushandler en een startconfiguratie. Het is aan de implementatie van de gemachtigde om fouten te detecteren en de juiste statushandler te vinden en deze aan te roepen. De extensie levert alleen een register aan zodat de statushandlers kunnen worden gevonden voor bepaalde statuscodes. DebugPlugin biedt een utility-methode voor het verkrijgen van een specifieke statushandler.
IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);
Statushandlers moeten IStatusHandler implementeren. De statusafhandelingsklasse wordt opgegeven in de extensiedefinitie, samen met de bijbehorende statuscode en de plugin die geacht wordt de statuscodes te genereren.
In de volgende markup ziet u hoe statushandlers worden gedeclareerd met de Java-tools:
<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>