Utilisation d'un gestionnaire de message
Le comportement par défaut pour les erreurs de traitement et les autres messages pouvant survenir pendant la préparation et l'exécution consiste à les diriger vers la sortie system.err. Pour les erreurs non remédiables, une exception XProcessException est générée en plus. Si une erreur se produit pendant la préparation, le processeur tente de continuer cette préparation et signale toutes les erreurs avant de générer une exception XProcessException, mais il ne produit aucun exécutable. Pendant la phase d'exécution, l'exécution s'arrête dès la première erreur.
Procédure
- Ce paramètre demande l'une des expressions énumératives suivantes définies dans l'interface XMessageHandler :
- L'erreur est signalée à titre d'information uniquement et n'a pas d'effet sur le résultat.
Ce paramètre sert également pour l'instruction XSLT message quand la valeur de l'attribut terminate est "no".
- Signale un avertissement.
Un avertissement n'affecte pas le processeur mais le résultat peut être différent de celui attendu.
- Signale une erreur remédiable.
Le processeur peut passer outre cette erreur pour en signaler d'autres mais aucun résultat ne sera généré.
- Signale une erreur non remédiable.
Le processeur est arrêté par ce type d'erreur. Ce paramètre sert également pour l'instruction XSLT message quand la valeur de l'attribut terminate est "yes".
- Indique que le message a été généré par un appel à la fonction XPath fn:trace.
- L'erreur est signalée à titre d'information uniquement et n'a pas d'effet sur le résultat.
- Message d'erreur
- Emplacement source d'un objet XSourceLocation, le cas échéant.
En général, l'emplacement source est indisponible pour les erreurs d'exécution.
- Exception à l'origine de l'erreur, le cas échéant.
Par exemple, si le document d'entrée est non valide, l'analyseur syntaxique XML génère une exception qui est communiquée à la méthode de rapport via ce paramètre.
- Eléments spécifiés pour le paramètre error-object dans la fonction XPath fn:error.
L'implémentation de l'objet XMessageHandler peut représenter les erreurs et les autres messages comme vous le souhaitez, par exemple les consigner dans un fichier journal au lieu de les diriger vers le fichier de sortie system.err. Elle peut aussi être plus stricte et arrêter la compilation ou l'exécution quelque soit l'erreur, même les erreurs remédiables, et générer une exception. Dans la mesure où la méthode de rapport n'a pas de clause throws, l'exception ne doit pas être contrôlée. L'implémentation peut aussi ignorer les messages d'information et d'avertissement. En somme, enregistrer un objet XMessageHandler vous permet de configurer la gestion des messages d'une manière adaptée à votre application.
Notez que dans le cas d'une erreur non remédiable, si le gestionnaire de message enregistré ne génère pas d'exception, le processeur déclenche une exception XProcessException.