Оператор TRY
Оператор TRY
- создание действия, которое выполняет некоторое действие с обработкой исключений.
Синтаксис
TRY action [CATCH catchAction] [FINALLY finallyAction]
Описание
Оператор TRY
создает действие, которое выполняет другое действие и занимается обработкой исключений в нем.
Форма оператора без ключевого слова FINALLY
создает действие, выполняющее другое действие и перехватывающее возникающие в нем ошибки. При этом ошибка никуда не передается.
Форма оператора с ключевым словом FINALLY
создает действие, которое выполняет другое действие, перехватывает возникающие ошибки, затем вне зависимости от того, возникла ли ошибка или нет, выполняет действие, указанное в блоке FINALLY
, и затем, в случае если возникла ошибка и нет блока CATCH
, передает эту ошибку верхнему по стеку действию.
Параметры
-
action
Контекстно-зависимый оператор, описывающий действие, которое будет выполнено с обработкой исключений.
-
catchAction
Контекстно-зависимый оператор, описывающий действие, которое будет выполнено в случае возникновения ошибки во время выполнения действия. При этом сообщение ошибки будет записано в свойство
System.messageCaughtException[]
, java-стек ошибки будет записан вSystem.javaStackTraceCaughtException[]
, а LSF стек - вSystem.lsfStackTraceCaughtException[]
. -
finallyAction
Контекстно-зависимый оператор, описывающий действие, которое будет выполнено после выполняемого действия вне зависимости от того, возникла ошибка или нет.
Примеры
tryToImport(FILE f) {
TRY {
LOCAL a = BPSTRING[10] (INTEGER);
IMPORT XLS FROM f TO a = A;
}
}
CLASS MyLock {
lock 'Блокировка'
}
singleDo () {
NEWSESSION {
lock(MyLock.lock);
IF lockResult() THEN
TRY {
MESSAGE 'Lock Obtained';
} CATCH {
MESSAGE messageCaughtException();
} FINALLY unlock(MyLock.lock);
}
}