在 Lua C 处理程序中,我在抛出错误之前在注册表中设置了一个标志。如果从 Lua 使用pcall
. 以下是更多详细信息:
我有一个handle
从 C 调用的基本 Lua 函数,使用lua_pcall
:
function handle()
c_handle()
end
C 中的句柄具有以下基本结构,我们希望在抛出错误之前设置一个标志,以区分错误与其他错误。
int c_handle(lua_State *L)
{
if (condition) {
set a flag in registry
throw error with lua_error
}
我遇到的问题是,如果 Lua 使用 pcall 调用处理程序,我不想设置注册表标志或清除它:
function handle()
pcall(c_handle)
end