Hantera fel från ett startat program

Om du har definierat en egen typ av startkonfiguration, vill du säkert hantera fel eller annan statusinformation som uppstår under programkörningen. Du kanske t.ex. vill informera eller varna användaren om vissa typer av fel som uppstår under start, eller ge informationsmeddelanden för vissa statusändringar i programmet. Eftersom det är bra praxis att separera hantering av användargränssnitt från kärnfunktionen, vill du inte ha direkta referenser från din startdelegat till klasser för statushantering.

Detta problem löser man med hjälp av utökningspunkten org.eclipse.debug.core.statusHandlers. Via den kan du associera en statushanterare med en viss statuskod. Med hjälp av denna utökningspunkt kan du definiera alla möjliga status- och felkoder i startdelegaten och kärnklasserna, samtidigt som du registrerar unika hanterare för olika statuskoder från andra insticksprogram.

I utökningspunkten sker ingen association mellan en statushanterare och en startkonfiguration. Det är implementeringen av startdelegaten som ansvarar för att upptäcka fel, hitta lämplig statushanterare och anropa den. I tillägget finns endast ett register så att statushanterare kan hittas för vissa statuskoder. DebugPlugin ger en hjälpmetod för att skaffa fram en viss statushanterare.

IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);

Statushanterare ska implementera IStatusHandler. Klassen för statushantering anges i tilläggsdefinitionen tillsammans med dess associerade statuskod och det insticksprogram som förväntas generera statuskoderna.

Följande kodstycke visar hur Java-verktygen deklarerar statushanterare:

<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>