TRY FINALLY EXCEPT — различия между версиями
Alexey (обсуждение | вклад) |
Alexey (обсуждение | вклад) |
||
Строка 8: | Строка 8: | ||
|Аргументы= | |Аргументы= | ||
{{Аргумент | {{Аргумент | ||
− | |Название= | + | |Название=блок TRY |
− | |Пояснение= | + | |Пояснение=в блоке TRY находятся выражения, которые нужно проконтролировать на ошибки |
}}<br/>{{Аргумент | }}<br/>{{Аргумент | ||
− | |Название= | + | |Название=блок FINALLY |
− | |Пояснение= | + | |Пояснение=в блоке FINALLY находятся выражения, которые нужно выполнить независимо от того, возникли или нет ошибки при выполнении блока TRY |
}} | }} | ||
− | |Пример=Пример 1. | + | <br/>{{Аргумент |
− | '''TRY'''(<выражение, выражение, ..., | + | |Название=блок EXCEPT |
+ | |Пояснение=в блоке EXCEPT находятся выражения, которые будут выполнены только если в блоке TRY возникнет ошибка | ||
+ | }}|Пример=Пример 1. | ||
+ | '''TRY'''(<выражение, выражение, ...>, ''<--блок кода, защищаемый от ошибок'', | ||
'''EXCEPT'''( | '''EXCEPT'''( | ||
− | <выражение, выражение, ...,> ''<-- | + | <выражение, выражение, ...,> ''<--эти выражения выполнятся только в том случае, если в блоке TRY возникла ошибка'' |
+ | ) | ||
+ | ) | ||
− | FINALLY( | + | В блоке TRY находятся выражения, контролируемые на ошибки. |
− | <выражения | + | <br>Если в одном из этих выражений возникнет ошибка, выполнение блока TRY прервётся, а управление будет передано на блок EXCEPT, после чего выполнятся выражения уже этого блока. |
+ | <br>При этом работа всего скрипта не будет прервана и продолжится после конструкции TRY...EXCEPT. | ||
+ | |||
+ | <br> | ||
+ | Пример 2. | ||
+ | '''TRY'''(<выражение, выражение, ...>, ''<--блок кода, защищаемый от ошибок'', | ||
+ | '''FINALLY'''( | ||
+ | <выражение, выражение, ...> ''<--эти выражения выполнятся всегда, независимо от ошибок в блоке TRY'' | ||
+ | ) | ||
+ | ) | ||
+ | |||
+ | В блоке TRY находятся выражения, контролируемые на ошибки. | ||
+ | <br>Если в одном из этих выражений возникнет ошибка, выполнение блока TRY прервётся, а управление будет передано на блок EXCEPT, после чего выполнятся выражения уже этого блока. | ||
+ | <br>При этом работа всего скрипта не будет прервана и продолжится после конструкции TRY...EXCEPT. | ||
+ | В случае возникновения ошибки во время выполнения выражений в блоке TRY управление будет передано на блок EXCEPT, после чего выполнятся выражения этого блока. При этом работа всего скрипта не будет прервана и продолжится после TRY...EXCEPT. | ||
+ | |||
+ | Пример 3. | ||
+ | '''TRY'''(<выражение, выражение, ...>, ''<--блок кода, защищаемый от ошибок'', | ||
+ | '''EXCEPT'''( | ||
+ | <выражение, выражение, ...>, ''<--эти выражения выполнятся только в том случае, если в блоке TRY возникла ошибка'' | ||
+ | RAISE() | ||
+ | ) | ||
+ | ) | ||
<br/> ) | <br/> ) | ||
<br/> ), | <br/> ), |
Версия 11:48, 13 марта 2015
Функции для работы с ошибками.
Синтаксис
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(`Опаньки, продолжаем выполнение!`)