TRY FINALLY EXCEPT
Функции для работы с ошибками.
Синтаксис
TRY(выражение, выражение, ..., FINALLY(выражение, выражение, ...)
или
TRY(выражение, выражение, ..., EXCEPT(выражение, выражение, ...))
Аргументы
- блок TRY
- в блоке TRY находятся выражения, которые нужно проконтролировать на ошибки
- блок FINALLY
- в блоке FINALLY находятся выражения, которые нужно выполнить независимо от того, возникли или нет ошибки при выполнении блока TRY
- блок EXCEPT
- в блоке EXCEPT находятся выражения, которые будут выполнены только если в блоке TRY возникнет ошибка
Тип результата
- Нет
Примеры
Пример 1.
TRY(<выражение, выражение, ...>, <--блок кода, защищаемый от ошибок, EXCEPT( <выражение, выражение, ...,> <--эти выражения выполнятся только в том случае, если в блоке TRY возникла ошибка ) )
В блоке TRY находятся выражения, контролируемые на ошибки.
Если в одном из этих выражений возникнет ошибка, выполнение блока TRY прервётся, а управление будет передано на блок EXCEPT, после чего выполнятся выражения уже этого блока.
При этом работа всего скрипта не будет прервана и продолжится после конструкции TRY...EXCEPT.
Пример 2.
TRY(<выражение, выражение, ...>, <--блок кода, защищаемый от ошибок, FINALLY( <выражение, выражение, ...> <--эти выражения выполнятся всегда, независимо от ошибок в блоке TRY ) )
В блоке TRY находятся выражения, контролируемые на ошибки.
Если в одном из этих выражений возникнет ошибка, выполнение блока TRY прервётся, а управление будет передано на блок EXCEPT, после чего выполнятся выражения уже этого блока.
При этом работа всего скрипта не будет прервана и продолжится после конструкции TRY...EXCEPT.
В случае возникновения ошибки во время выполнения выражений в блоке TRY управление будет передано на блок EXCEPT, после чего выполнятся выражения этого блока. При этом работа всего скрипта не будет прервана и продолжится после TRY...EXCEPT.
Пример 3.
TRY(<выражение, выражение, ...>, <--блок кода, защищаемый от ошибок, EXCEPT( <выражение, выражение, ...>, <--эти выражения выполнятся только в том случае, если в блоке TRY возникла ошибка RAISE() ) )
)
),
EXCEPT(
Info(`Ругаемся на ашипку!`),
RAISE()
)
),
Info(`Опаньки, продолжаем выполнение!`)