Я пытаюсь вызвать простую функцию Lua из Java, используя LuaJava.calc.lua:
function foo(n) return n*2 end
Это все, что есть в calc.lua и последующие вызовы из командной строки работают.
Вот вызов, который всегда имеет ошибку:
L.getGlobal("foo");
L.pushNumber(8.0);
int retCode=L.pcall(1, 1,-2); // retCode value is always 5 pcall(numArgs,numRet,errHandler)
String s = L.toString(-1); // s= "Error in Error Handling Code"
Я также пытался
L.remove (-2);L.insert (-2);
Не уверен, почему он дает какую-либо ошибку или что это за ошибка.Может я неправильно настраиваю обработчик ошибок?Так не звонит?После загрузки я попытался с консоли и могу запустить print (foo (5)), возвращая 10, как и ожидалось.
ОБНОВЛЕНИЕ: похоже, мне нужно предоставить обработчик ошибок в стеке.Какая подпись для такого обработчика ошибок и как бы я поместил его в точку в стеке.Спасибо