[英]Lua Catching Exceptions
我正在用Lua(和C ++)编码。 我想捕获异常并将其打印到控制台中。 lua_atpanic
无法正常运行后(程序仍然退出)。 我想使用例外。
这是我的luaconf.h
的编辑部分:
/* C++ exceptions */
#define LUAI_THROW(L,c) throw(c)
#define LUAI_TRY(L,c,a) try { a } catch(...) \
{ if ((c)->status == 0) (c)->status = -1; }
#define luai_jmpbuf int /* dummy variable */
这是加载的init.lua
:
int init = luaL_loadfile(L, "lua/init.lua");
if(init == 0)
{
printf("[LUA] Included lua/init.lua\n");
init = lua_pcall(L, 0, LUA_MULTRET, 0);
}
所以现在我想,当使用C ++异常时,我可以将该代码编辑为以下内容:
try {
int init = luaL_loadfile(L, "lua/init.lua");
if(init == 0)
{
printf("[LUA] Included lua/init.lua\n");
init = lua_pcall(L, 0, LUA_MULTRET, 0);
}
// Error Reporting
if(init != 0) {
printf("[LUA] Exception:\n");
printf(lua_tostring(L, -1));
printf("\n\n");
lua_pop(L, 1);
} else {
lua_getglobal(L, "Init");
lua_call(L, 0, 0);
}
} catch(...)
{
MessageBox(NULL, "Hi", "Hio", NULL);
}
只是看看是否有任何事情发生。 但是什么也没发生。 (Lua错误正在调用nil
值)
有任何想法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.