Se è stato definito un tipo personalizzato di configurazione di avvio, è probabile che si desideri gestire errori e altre informazioni sullo stato generate durante l'esecuzione del programma. Ad esempio, potrebbe essere necessario avvisare l'utente quando si verificano determinati tipi di errore durante un avvio o fornire messaggi informativi relativi a determinate modifiche di stato del programma. Dal momento che è buona norma separare la gestione UI dalla funzione di base, non saranno stabiliti riferimenti diretti dal delegato di avvio alle classi di gestione dello stato.
Questo problema viene affrontato dal punto di estensione org.eclipse.debug.core.statusHandlers. Esso consente di associare un gestore di stato a un codice di stato specifico. Utilizzando questo punto di estensione, è possibile definire tutti i possibili codici di stato e di errore del delegato di avvio e delle classi di base durante la registrazione dei gestori univoci per i diversi codici di stato da un altro plugin.
Il punto di estensione non designa alcuna associazione tra un gestore di stato e una configurazione di avvio. È compito dell'implementazione del delegato di avvio rilevare errori, trovare il gestore di stato appropriato e richiamarlo. L'estensione si limita a fornire un registro che consente l'individuazione dei gestori di stato per i particolari codici di stato. DebugPlugin fornisce un metodo di utilità per ottenere un determinato gestore di stato.
IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);
I gestori di stato devono implementare IStatusHandler. La classe di gestione dello stato è specificata nella definizione di estensione, insieme al codice si stato associato e al plugin che deve generare i codici di stato.
Il seguente tag mostra come gli strumenti Java dichiarano i gestori di stato:
<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>