![]()
|
|||||||
Инструкций try. Синтаксис. Описание. Семантика⇐ ПредыдущаяСтр 11 из 11 12.14 Инструкций try Синтаксис ИнструкцияTry : try Блок Catch 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).
|
|||||||
|