Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


xsl:try ... xsl:catch

Wie in diversen Programmier-Sprachen üblich, ist nun auch in XSLT 3.0 ein leistungsfähiges Exception-Handling verfügbar, mit dem diverse Fehler aufgefangen werden können.

<ROOT>
 <xsl:try>
  <xsl:call-template name="evaluatedemo" />
  <xsl:variable name="v0" select="xs:integer('0')" />
  <xsl:value-of select="1 div $v0"/>
  <xsl:catch errors="err:FOAR0001">
   <xsl:message>Durch Null Division</xsl:message>
  </xsl:catch>
  <xsl:catch errors="err:XPDY0002">
   <xsl:message>xsl:evaluate: Das Attribut context-item fehlt</xsl:message>
  </xsl:catch>
  <xsl:catch>    
   <xsl:message>Code         : {$err:code}; </xsl:message>
   <xsl:message>Description  : {$err:description}</xsl:message>
   <xsl:message>Value        : {$err:value}; </xsl:message>
   <xsl:message>Module       : {$err:module}; </xsl:message>
   <xsl:message>line-number  : {$err:line-number}; </xsl:message>
   <xsl:message>column-number: {$err:column-number}; </xsl:message>
  </xsl:catch>
 </xsl:try>   
</ROOT>

Auf der Webseite https://www.w3.org/2005/xqt-errors/ gibt es eine Liste von Zugriffsmöglichkeiten auf das Fehler-Objekt.

err:code Der Errorcode
err:description Eine freie Fehlerbeschreibung
err:value Ein Wert, der mit dem Fehler assoziiert wird
err:module Die URI des Stylesheets, in dem der Fehler auftrat
err:line-number Die Zeilennummer der Anweisung, wo der Fehler auftrat
err:column-number Die Spaltennummer der Anweisung, wo der Fehler auftrat

Ist der Fehlercode "err:FOAR0001", dann wird die oben beschriebene Fehlermeldung ausgegeben:

Durch Null Division

Sind die Fehlerfänger errors="err:FOAR0001" bzw. "err:XPDY0002" auskommentiert oder sonst nicht wirksam, dann greift der Default-Fehlerfänger ein:

Processor has sent a message from line 210 
    and position 7: Code         : err:FOAR0001;
Processor has sent a message from line 211 
    and position 7: Description  : Division by zero.
Processor has sent a message from line 212 
    and position 7: Value        : ;
Processor has sent a message from line 213 
    and position 7: Module       : file:///C:/wg/XSL__30.xsl;
Processor has sent a message from line 214 
    and position 7: line-number  : 199;
Processor has sent a message from line 215 
    and position 7: column-number: 6;

qrpic/XSL301.jpg

wg / 14. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info10@wilfried-grupe.de