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(`Опаньки, продолжаем выполнение!`)