The saxon:try
instruction evaluates an XPath expression in its select
attribute, or a sequence of child instructions. If any dynamic error occurs while performing this
evaluation, the error may be caught by an xsl:catch
instruction that is written as a child
of the xsl:try
. For example, the following code catches a failure occurring while executing the
document()
function, and returns an <error-document/>
element if this
occurs.
<xsl:variable name="doc" as="document-node()">
<saxon:try select="document($input-uri)">
<saxon:catch errors="*">
<xsl:document>
<error-document/>
</xsl:document>
</saxon:catch>
</saxon:try>
</xsl:variable>
The saxon:try
element must contain at least one saxon:catch
child, and it may
contain several. Each one specifies which errors it is intended to catch in its errors
attribute;
the value *
catches all errors. The first saxon:catch
to match the error code is the
one that is evaluated. The saxon:catch
children must come after all other children, with the
exception of any xsl:fallback
children (which can be included to define fallback behaviour by processors
that do not recognize the saxon:try
instruction.
The saxon:try
element may have either a select
attribute, or a sequence of
child instructions (preceding the first xsl:catch
); it must not have both.
saxon:try
is available in Saxon-EE only
See also saxon:catch.