gpt4 book ai didi

error-handling - 是否有 Lua 警告而不是 Lua 错误?

转载 作者:行者123 更新时间:2023-12-04 12:22:37 24 4
gpt4 key购买 nike

Lua 有 luaL_error , 和 lua_error 在 C 函数中使用的函数,例如:

luaL_error( L, "something bad" );

这将导致显示错误消息并停止 Lua 执行。错误消息将包含它发生的行和文件:
Error: ../example/ex01.lua:6: something bad

是否有类似的功能可以显示错误但不会破坏 lua 执行?但显示它发生的线。

最佳答案

复制luaL_error的源代码并将调用替换为 lua_error最后通过适当的电话 printf使用字符串 lua_tostring(L,-1) .像这样的东西:

LUALIB_API int luaL_warn (lua_State *L, const char *fmt, ...) {
va_list argp;
va_start(argp, fmt);
luaL_where(L, 1);
lua_pushvfstring(L, fmt, argp);
va_end(argp);
lua_concat(L, 2);
printf("warning: %s\n",lua_tostring(L,-1));
return 0;
}

static int luaB_warn (lua_State *L) {
return luaL_warn(L, "%s", luaL_checkstring(L, 1));
}

不要忘记通过在 base_funcs 中添加一个条目来将其导出到 Lua。在 lbaselib.c或调用 lua_register(L,"warn",luaB_warn) .

关于error-handling - 是否有 Lua 警告而不是 Lua 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15360420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com