我正在使用lua 5.1
如果我尝试将数字除以零,将零数字加到负数或模数为零,我希望lua计算失败并打印错误。
我所做的是改变计算定义,如此
#define luai_numdiv(L,a,b) ((a)/(b))
这样的事情
inline lua_number luai_numdiv(lua_State *L, lua_Number a, lua_Number b){
if(b != cast_num(0))
return (a)/(b);
else
luaD_throw(L, LUA_ERRRUN);
}
这根本不起作用。而且我认为它与luaD_Throw是一种不正确的方法,无法在lua中进行计算。
如何在lua中正确地使计算失败?
答案 0 :(得分:1)
您的代码有效。它只是不会发出任何错误信息。
尝试在lua_pushliteral(L,"division by zero")
之前添加luaD_throw(L,LUA_ERRRUN)
。
或使用luaG_runerror(L,"division by zero")
代替luaD_throw(L,LUA_ERRRUN)
来获取更详细的错误消息。