Gestione degli errori da un programma avviato

Se è stato definito un tipo personalizzato di configurazione di avvio, è probabile che si desideri gestire errori e altre informazioni 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 plug-in.

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.  I client trovano i gestori di stato eseguendo una query in DebugPlugin.

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 plug-in 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.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>
Copyright IBM Corporation e altri 2000, 2003.