Spec-Zone .ru
спецификации, руководства, описания, API
Содержание | Предыдущий | Следующий | ИндексСпецификация Виртуальной машины JavaTM


A B C D F Г Я J L М. N P R S T W

мочить

Работа

Возвратитесь из подпрограммы

Формат

мочить
индекс

Формы

мочите = 169 (0xa9)

Стек операнда

Никакое изменение

Описание

Индекс является байтом без знака между 0 и 255, включительно. Локальная переменная по индексу в текущем фрейме (§3.6) должна содержать значение типа returnAddress. Содержание локальной переменной пишется в виртуальную машину Java pc регистр, и выполнение продолжаются там.

Примечания

Мочить инструкция используется с jsr или jsr_w инструкциями в реализации finally пункты языка программирования Java (см. Раздел 7.13, "Компилируя finally"). Отметьте, что jsr продвигает адрес на стек операнда, и мочите, вытаскивает это из локальной переменной. Эта асимметрия является намеренной.

Мочить инструкция не должна быть перепутана с инструкцией возврата. Инструкция возврата возвращает управление от метода до его invoker, не пасуя назад значения к invoker.

Мочить код операции может использоваться в соединении с широкой инструкцией, чтобы получить доступ к локальной переменной, используя двухбайтовый индекс без знака.


возвратиться

Работа

Возвратиться void от метода

Формат

возвратиться

Формы

возвратитесь = 177 (0xb1)

Стек операнда

... [пустой]

Описание

У текущего метода должен быть тип возврата void. Если текущий метод является a synchronized метод, монитор, полученный или повторно введенный на вызове метода, выпускается или выходится (соответственно) как будто выполнением monitorexit инструкции. Если никакое исключение не выдается, любые значения на стеке операнда текущего фрейма (§3.6) отбрасываются.

Интерпретатор тогда возвращает управление invoker метода, восстанавливая фрейм invoker.

Исключения на этапе выполнения

Если текущий метод является a synchronized метод и текущий поток не являются владельцем монитора, полученного или повторно введенного на вызове метода, возвратите броски IllegalMonitorStateException. Это может произойти, например, если a synchronized метод содержит monitorexit инструкцию, но никакую monitorenter инструкцию, на объекте, на котором синхронизируется метод.

Иначе, если реализация виртуальной машины осуществляет правила о структурированном использовании блокировок, описанных в Разделе 8.13 и если первое из тех правил нарушается во время вызова текущего метода, то возвратите броски IllegalMonitorStateException.


Содержание | Предыдущий | Следующий | Индекс

Спецификация Виртуальной машины JavaTM
Авторское право © Sun Microsystems, Inc 1999 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к jvm@java.sun.com

free hit counter