我想用LuaJava從Java調用一個簡單的Lua函數。 calc.lua:LuaJava錯誤處理中的錯誤
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); (-2); L.insert(-2);
不知道爲什麼它給出任何錯誤或錯誤是什麼。也許我沒有正確設置錯誤處理程序?所以它不會打電話?加載後,我嘗試從控制檯,並可以運行打印(foo(5))如預期恢復10。
更新:它看起來像我需要在堆棧上提供一個錯誤處理程序。什麼是這樣的錯誤處理程序的簽名,以及如何將它放在堆棧上的一個點上。謝謝
好的。我現在收到錯誤消息。 – Androider 2011-12-24 02:12:09
這是另一個問題,但現在我得到的錯誤是試圖對局部變量n進行算術運算。 – Androider 2011-12-24 02:43:52
這裏是關於產生的錯誤代碼的問題的鏈接http://stackoverflow.com/questions/8622409/lua-error-attempt-to-perform-arithmetic-on-local-variable – Androider 2011-12-24 03:06:04