CATCHERROR
Материал из GB wiki
Версия от 08:53, 17 марта 2015; Alexey (обсуждение | вклад)
Выполняет первое выражение. Если при выполнении возникает ошибка - помещает ее код и описание в переменные _ErrorCode и _ErrorParams и выполняет второе выражение. Также можно использовать объект E для работы с ошибками. Например: E.ClassName(), E.Message()
Синтаксис
CATCHERROR(Выражение 1,Выражение 2)
Аргументы
- Выражение 1
- произвольное выражение.
- Выражение 2
- произвольное выражение.
Тип результата
- Нет
Примеры
Пример 1.
CATCHERROR(
OPENDATASET(
`goodies_autofix`,
[
`Type,I` : 1,
`Ids,B` : Articul
],
``
),
(
:errors:=:errors+ifempty(:errors,``,\)+Articul,
:errcnt:=:errcnt+1
)
)
Пытается выполнить восстановление партий по товару. Если происходит ошибка, запоминает код товара и увеличивает счетчик ошибок. При этом выполнение скрипта не прерывается.
Пример 2.
:SDt:=`aaa`,
CATCHERROR(
STRTODATE(:SDt),
INFO(
`Произошла какая-то ошибка... Определим её тип.`
+ \
+ `Класс ошибки: `
+ E.ClassName()
+ \
+ `Текст ошибки: `
+ E.Message()
)
),
INFO(`Продолжаем выполнение...`)
Будут выведены следующие сообщения:
- Произошла какая-то ошибка... Определим её тип.
- Класс ошибки: EConvertError
- Текст ошибки: 'aaa' is not a valid date and time
- в выражении
- STRTODATE(:SDt)
- Продолжаем выполнение...