Spec-Zone .ru
спецификации, руководства, описания, API
|
Содержание | Предыдущий | Следующий | Индекс | Спецификация Виртуальной машины JavaTM |
Работа
Возвратитесь из подпрограммы
Формат
мочить индекс
Формы
мочите = 169 (0xa9)
Стек операнда
Никакое изменение
Описание
Индекс является байтом без знака между 0 и 255, включительно. Локальная переменная по индексу в текущем фрейме (§3.6) должна содержать значение типаreturnAddress
. Содержание локальной переменной пишется в виртуальную машину Javapc
регистр, и выполнение продолжаются там.
Примечания
Мочить инструкция используется с jsr или jsr_w инструкциями в реализацииfinally
пункты языка программирования Java (см. Раздел 7.13, "Компилируяfinally
"). Отметьте, что jsr продвигает адрес на стек операнда, и мочите, вытаскивает это из локальной переменной. Эта асимметрия является намеренной.
Мочить инструкция не должна быть перепутана с инструкцией возврата. Инструкция возврата возвращает управление от метода до его invoker, не пасуя назад значения к invoker.
Мочить код операции может использоваться в соединении с широкой инструкцией, чтобы получить доступ к локальной переменной, используя двухбайтовый индекс без знака.
Работа
Возвратитьсяvoid
от метода
Формат
возвратиться
Формы
возвратитесь = 177 (0xb1)
Стек операнда
... [пустой]
Описание
У текущего метода должен быть тип возвратаvoid
. Если текущий метод является asynchronized
метод, монитор, полученный или повторно введенный на вызове метода, выпускается или выходится (соответственно) как будто выполнением monitorexit инструкции. Если никакое исключение не выдается, любые значения на стеке операнда текущего фрейма (§3.6) отбрасываются.
Интерпретатор тогда возвращает управление invoker метода, восстанавливая фрейм invoker.
Исключения на этапе выполнения
Если текущий метод является asynchronized
метод и текущий поток не являются владельцем монитора, полученного или повторно введенного на вызове метода, возвратите броскиIllegalMonitorStateException
. Это может произойти, например, если asynchronized
метод содержит monitorexit инструкцию, но никакую monitorenter инструкцию, на объекте, на котором синхронизируется метод.
Иначе, если реализация виртуальной машины осуществляет правила о структурированном использовании блокировок, описанных в Разделе 8.13 и если первое из тех правил нарушается во время вызова текущего метода, то возвратите броски IllegalMonitorStateException
.
Содержание | Предыдущий | Следующий | Индекс
Спецификация Виртуальной машины JavaTM
Авторское право © Sun Microsystems, Inc 1999 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к jvm@java.sun.com