Хелпикс

Главная

Контакты

Случайная статья





Инструкций try. Синтаксис. Описание. Семантика



12.14 Инструкций try

Синтаксис

ИнструкцияTry :

try Блок Catch
try Блок Finally
try Блок Catch Finally

Catch :

catch (Идентификатор ) Блок

Finally :

finally Блок

Описание

Инструкция try используется для заключения в себе блока кода, в котором может наступить исключительное состояние, такое как ошибка выполнения или инструкция throw. Раздел catch содержит код обработки исключения. Когда раздел catch ловит исключение, его Идентификатор привязывается к этому исключению.

Семантика

Значение нетерминала ИнструкцияTry : try Блок Catch вычисляется по следующей схеме:

1. Вычислить значение Блока.

2. Если Результат(1). тип не равен throw - вернуть Результат(1).

3. Вычислить значение Catch с параметром Результат(1).

4. Вернуть Результат(3).

Значение нетерминала ИнструкцияTry : try Блок Finally вычисляется по следующей схеме:

1. Вычислить значение Блока.

2. Вычислить значение Finally.

3. Если Результат(2).тип равен normal, вернуть Результат(1).

4. Вернуть Результат(2).

Значение нетерминала ИнструкцияTry : try Блок Catch Finally вычисляется по следующей схеме:

1. Вычислить значение Блока.

2. Пусть C = Результат(1).

3. Если Результат(1). тип не равен throw - переход на шаг 6.

4. Вычислить значение Catch с параметром Результат(1).

5. Пусть C = Результат(4).

6. Вычислить значение Finally.

7. Если Результат(6). тип равно normal - вернуть C.

8. Вернуть Результат(6).

Значение нетерминала Catch : catch (Идентификатор ) Блок вычисляется по следующей схеме:

1. Пусть C равно параметру, переданному этому нетерминалу.

2. Создать новый объект, как он был бы создан выражением new Object().

3. Создать свойство в объекте Результат(2). Имя свойства Идентификатор, значение равно C. значение, атрибуты равны { DontDelete }.

4. Добавить Результат(2) к началу иерархии областей видимости.

5. Вычислить значение Блока.

6. Убрать Результат(2) из начала иерархии областей видимости.

7. Вернуть Результат(5).

Значение нетерминала Finally : finally Блок вычисляется по следующей схеме:

1. Вычислить значение Блока.

2. Вернуть Результат(1).

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.