Nachrichten-Handler verwenden

Das Standardverhalten bei der Verarbeitung von Fehlernachrichten und anderen Nachrichten in der Vorbereitungs- und Ausführungszeit ist die Ausgabe der Nachrichten in der Systemfehlerausgabe (System.err). Bei nicht behebbaren Fehlern wird außerdem eine XProcessException ausgelöst. Tritt in der Vorbereitungszeit ein Fehler auf, versucht der Prozessor, die Vorbereitung fortzusetzen und alle Fehler zu signalisieren, bevor eine XProcessException generiert wird. Es wird kein ausführbares Objekt erzeugt. In der Laufzeit wird die Ausführung beim ersten Eintreten einer Fehlersituation gestoppt.

Vorgehensweise

Sie können die Handhabung von Fehlern ändern, indem Sie eine Implementierung von XMessageHandler im XStaticContext (für Fehlernachrichten und andere Nachrichten in der Vorbereitungszeit) oder im XDynamicContext (für Fehlernachrichten und andere Nachrichten in der Ausführungszeit) registrieren.
Zum Interface XMessageHandler gehört eine einzelne Methode report mit folgenden Parametern:
level
Einer der folgenden, im Interface XMessageHandler definierten Aufzählungsausdrücke:
INFO
Gibt an, dass die Fehlernachricht eine einfache Informationsnachricht ist und keinen Einfluss auf das Ergebnis hat

Dieser Ausdruck wird auch für die XSLT-Nachrichtenanweisung verwendet, wenn die Auswertung des Attributs terminate den Wert "no" ergibt.

WARNING
Zeigt eine Warnung an

Der Prozessor kann nach einer Warnsituation eine Wiederherstellung durchführen. Das Ergebnis entspricht jedoch möglicherweise nicht den Erwartungen.

ERROR
Zeigt einen behebbaren Fehler an

Möglicherweise kann der Prozessor den Fehler insoweit beheben, dass weitere Fehler signalisiert werden können. Ein Ergebnis wird jedoch nicht erzeugt.

FATAL_ERROR
Zeigt einen nicht behebbaren Fehler an

Der Prozessor kann diesen Fehler nicht beheben. Dieser Ausdruck wird auch für die XSLT-Nachrichtenanweisung verwendet, wenn die Auswertung des Attributs terminate den Wert "yes" ergibt.

TRACE
Zeigt an, dass die Nachricht von einem Aufruf der XPath-Funktion fn:trace generiert wurde
message
Fehlernachricht
location
Quellenposition, z. B. eine XSourceLocation, sofern verfügbar

Für Fehler in der Ausführungszeit ist im Allgemeinen keine Quellenposition verfügbar.

cause
Ursprüngliche Ausnahme, die den Fehler ausgelöst hat, sofern verfügbar

Wenn beispielsweise das Eingabedokument ungültig ist, generiert der XML-Parser eine Ausnahme, die mit diesem Parameter an die Methode report übergeben wird.

errorItems
Elemente, die für den Parameter error-object der XPath-Funktion fn:error angegeben wurden

Die Implementierung von XMessageHandler kann die Fehlernachrichten und anderen Nachrichten wie gewünscht darstellen. Sie können beispielsweise in ein Protokoll geschrieben und nicht an die Systemfehlerausgabe (System.err) gesendet werden. Eine striktere Implementierung ist ebenfalls möglich, bei der die Kompilierung oder Ausführung bei jedem Fehler (einschließlich behebbarer Fehler) gestoppt und eine Ausnahme generiert wird. Da die Methode report keine throws-Klausel hat, muss die Ausnahme eine ungeprüfte Ausnahme sein. Die Implementierung kann auch festlegen, dass Informationsnachrichten und Warnungen ignoriert werden. Bei Registrierung eines XMessageHandler kann die Anwendung somit die Nachrichtenbehandlung ganz nach ihren Erfordernissen konfigurieren.

Wenn der registrierte Nachrichten-Handler bei einem nicht behebbaren Fehler keine Ausnahme generiert, löst der Prozessor eine XProcessException aus.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_error_handler
Dateiname:txml_error_handler.html