EmptyStackException из ничего в Java

131
22 марта 2019, 20:40

появилась такая проблема в Java, есть метод FunctionCall:

public void FunctionCall(Interpreter interpreter) {
    JObject callable = stack.pop();
    int argc = stack.pop().toInt();
    callable.call(interpreter,argc);
}

Не смотря на то что я его не вызывал мне выдает данную ошибку:

Exception in thread "main" java.util.EmptyStackException
at java.base/java.util.Stack.peek(Stack.java:102)
at java.base/java.util.Stack.pop(Stack.java:84)
at learn.Frame.FunctionCall(Frame.java:127)
at learn.Frame.execute(Frame.java:112)
at learn.Interpreter.run_frame(Interpreter.java:17)
at learn.primitives.Function.call(Function.java:24)
at learn.Main.main(Main.java:26)

А так выглядит сам класс Frame: https://pastebin.com/pp7UA3Mj С чем связана данная проблема?

Answer 1

Проблема у вас здесь

switch ((int) code[pc]) {
    ........
    case Instruction.BRET:
        ret = new Bool(stack.pop().toBool());
    case Instruction.RET:
        System.out.println(stack.get(0));
        ret = stack.pop();
    case Instruction.CALL:
        FunctionCall(interpreter);
        pc++;
        continue;

Т.к. после условий Instruction.BRET, Instruction.RET нет команд выхода из switch то начинают выполняться последующие case

READ ALSO
как в процесcе создания нового пользователя извлечь сгенерированный id

как в процесcе создания нового пользователя извлечь сгенерированный id

Регистрирую в приложении нового пользователяЕму присваивается id

156
SybSQLException: Syntax error during explicit conversion

SybSQLException: Syntax error during explicit conversion

Всем приветСтолкнулся с ошибкой

166
Как отобразить PDF файл на странице JSF?

Как отобразить PDF файл на странице JSF?

Имеется БД, в которой лежат книгиКонтент книги в базе записан в типе blob

167