xsl:catch¶
В сочетании с xsl:try
инструкция xsl:catch
позволяет восстанавливать динамические ошибки.
Доступно в XSLT 3.0. Начиная с версии Saxon 9.8, доступна во всех редакциях. Реализована в Saxon-PE и Saxon-EE начиная с Saxon 9.6.
- Содержимое: sequence-constructor
- Допустимые родительские элементы:
xsl:try
Атрибуты¶
errors?
- tokens
- Указывает, какие коды ошибок перехватываются. Если отсутствует или имеет значение
*
, то перехватываются все ошибки. Значение может быть списком QNames, разделенных пробелами; также можно использовать подстановочные знаки*:local или prefix:*
. select?
- expression
- Действие элемента может быть определено либо атрибутом
select
, либо вложенным конструктором последовательности.
Подробности¶
Можно иметь более одного xsl:catch
в пределах xsl:try
; используется первый, который соответствует ошибке.
Внутри xsl:catch
доступен ряд переменных в пространстве имен http://www.w3.org/2005/xqt-errors
:
err:code
- код ошибки в виде QNameerr:description
- описание ошибки (сообщение об ошибке)err:value
- объект ошибки (если доступен)err:module
- URI модуля таблицы стилей, в котором произошла ошибкаerr:line-number
- номер строки исходной таблицы стилей, в которой произошла ошибкаerr:column-number
- для Saxon это обычно будет неизвестно (-1
).
Ошибка может быть повторно отброшена с помощью функции error()
.