Gestion d'erreurs dans un programme lancé

Si vous avez défini votre propre type de configuration de lancement, vous voudrez gérer les erreurs ou toute autre information renvoyée lors de l'exécution du programme. Par exemple, vous pouvez avertir l'utilisateur lorsque certains types d'erreurs se produisent au lancement ou afficher des messages dans le cas de changements de statut. Sachant qu'il est préférable de séparer la gestion de l'interface des fonctions de base, vous ne souhaitez pas de références directes de votre délégué de lancement à des classes de gestion de statut.

Le point d'extension org.eclipse.debug.core.statusHandlers se charge de ce problème.  Il vous permet d'associer un gestionnaire de statut à un code de statut spécifique.  Grâce à lui, vous pouvez définir tous les statuts et les codes d'erreur possibles dans votre délégué de lancement et les classes principales ; par ailleurs, vous enregistrez des gestionnaires uniques pour les divers codes de statut d'un autre plug-in.

Le point d'extension ne désigne aucune association entre un gestionnaire de statut et une configuration de lancement. Il revient à l'implémentation du délégué de lancement de détecter des erreurs, de trouver le gestionnaire de statut approprié et de l'appeler. L'extension fournit simplement un registre pour rechercher les gestionnaires de statut pour des codes déterminés. Les clients identifient les gestionnaires de statut en interrogeant DebugPlugin.

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

Les gestionnaires de statut doivent implémenter IStatusHandler. La classe de gestion de statut est spécifiée dans la définition de l'extension, avec le code de statut associé et le plug-in devant générer les codes.

Les marques suivantes indiquent comment les outils Java déclarent des gestionnaires de statut :

<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 and others 2000, 2003.