Lua (および C++) でコーディングしています。例外をキャッチしてコンソールに出力したい。Afterlua_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
ます)
何か案は?