Gestion d'erreurs dans un programme lancé

Si vous avez défini votre propre type de configuration de lancement, il est probable que vous voudrez gérer les erreurs ou toute autre information de statut générée lors de l'exécution du programme. Par exemple, il se peut que vous souhaitiez avertir l'utilisateur lorsque certains types d'erreurs se produisent au lancement ou fournir des messages d'information pour certains changements de statut dans le programme. Comme il est de règle de séparer la gestion de l'interface utilisateur des fonctions centrales, vous ne souhaitez pas avoir des références directes provenant de votre délégué de lancement pour connaître les 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 tout en enregistrant 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 les erreurs, de trouver le gestionnaire de statut approprié et de l'appeler. L'extension fournit simplement un registre permettant de trouver les gestionnaires de statut pour des codes de statut particuliers. DebugPlugin offre une méthode d'utilitaire permettant d'obtenir un gestionnaire de statut spécifique.

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 son code de statut associé et le plug-in devant générer les codes de statut.

Les marquages suivants 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.vmConnectTimeout"
		class="org.eclipse.jdt.internal.debug.ui.launcher.VMConnectTimeoutStatusHandler"
		plugin ="org.eclipse.jdt.launching"
		code="117">
	</statusHandler>	
	...
</extension>