Я пытаюсь позвонить:
LuaState.pcall(num_args,num_returns, error_handler_index).
Мне нужно знать, как установить обработчик ошибок для этой функции. На самом деле, я думаю, было бы неплохо, если бы кто-то показал, как вызывать функцию Lua и получить числовой результат с помощью LuaJava. Это может сэкономить много времени и вопросов. Я ищу, но не нахожу сигнатуру для функции ошибки и как разместить ее в нужной точке в стеке LuaState. Все примеры Java-> Lua либо выводят значение без возврата, либо задают значения для объекта Java, переданного с использованием Lua. Я хотел бы посмотреть, как напрямую вызвать функцию Lua и получить результат обратно.
Обновление: одним из решений является отсутствие обработчика ошибок с использованием LuaState.pcall (1,1,0) путем передачи нуля обработчику ошибок:
String errorStr;
L.getGlobal("foo");
L.pushNumber(8.0);
int retCode=L.pcall(1,1,0);
if (retCode!=0){
errorStr = L.toString(-1);
}
double finalResult = L.toNumber(-1);
где был загружен calc.lua:
function foo(n)
return n*2
end
Теперь есть ли способ установить обработчик ошибок? Спасибо