TRY FINALLY EXCEPT — различия между версиями

Материал из GB wiki
Перейти к: навигация, поиск
Строка 3: Строка 3:
 
|Название=TRY...FINALLY...EXCEPT
 
|Название=TRY...FINALLY...EXCEPT
 
|Описание=Функции для работы с ошибками.
 
|Описание=Функции для работы с ошибками.
|Синтаксис='''TRY'''(''выражение, выражение, ...'', '''FINALLY'''(''выражение, выражение, ...'') или '''EXCEPT'''(''выражение, выражение, ...''))
+
|Синтаксис='''TRY'''(''выражение, выражение, ...'', '''FINALLY'''(''выражение, выражение, ...'')
 +
<br/>или
 +
<br/>'''TRY'''(''выражение, выражение, ...'', '''EXCEPT'''(''выражение, выражение, ...''))
 
|Аргументы=
 
|Аргументы=
 
{{Аргумент
 
{{Аргумент
Строка 12: Строка 14:
 
  |Пояснение=кодовое слово, определяющее способ обхода полей. Может принимать одно из значений:
 
  |Пояснение=кодовое слово, определяющее способ обхода полей. Может принимать одно из значений:
 
}}
 
}}
|Пример=TRY(
+
|Пример=Пример 1.
<br/>    /*Защищаемые*/,
+
'''TRY'''(<выражение, выражение, ...,> ''<--блок кода, защищаемый от ошибок'',
<br/>    /*выражения*/
+
    '''EXCEPT'''(
<br/>    FINALLY(
+
        <выражение, выражение, ...,> ''<--сюда будет передано управление только в том случае, если возникнет ошибка в блоке TRY>''
<br/>        Info(`Всегда свобождаем ресурсы`)
+
 
 +
    FINALLY(
 +
        <выражения, которые выполняются всегда, независимо от ошибок
 
<br/>    )
 
<br/>    )
 
<br/>  ),
 
<br/>  ),

Версия 10:54, 13 марта 2015

Функции для работы с ошибками.

Синтаксис

TRY(выражение, выражение, ..., FINALLY(выражение, выражение, ...)
или
TRY(выражение, выражение, ..., EXCEPT(выражение, выражение, ...))

Аргументы

Имя контейнера
имя контейнера, для которого устанавливается порядок обхода. Если задана пустая строка - порядок обхода устанавливается во всей форме.
Способ обхода
кодовое слово, определяющее способ обхода полей. Может принимать одно из значений:

Тип результата

Нет

Примеры

Пример 1.

TRY(<выражение, выражение, ...,> <--блок кода, защищаемый от ошибок,
    EXCEPT(
        <выражение, выражение, ...,> <--сюда будет передано управление только в том случае, если возникнет ошибка в блоке TRY>
    FINALLY(
        <выражения, которые выполняются всегда, независимо от ошибок


    )
),
EXCEPT(
Info(`Ругаемся на ашипку!`),
RAISE()
)
),
Info(`Опаньки, продолжаем выполнение!`)