Lua代码中是否频繁出现警告而非错误,这背后隐藏了哪些潜在问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计249个文字,预计阅读时间需要1分钟。
Lua提供了`luaL_error`和`luaL_error`函数在C函数中使用,用于显示错误信息并停止Lua执行。例如:
cluaL_error(L, something bad);
这将显示错误信息Error: .../example/ex01.lua:6: something bad,包含出现错误的行和文件名。
Lua有luaL_error和lua_error函数在C函数中使用,如:luaL_error( L, "something bad" );
这将导致显示错误消息并且Lua执行停止.错误消息将包含它出现的行和文件:
Error: ../example/ex01.lua:6: something bad
是否有类似的函数显示错误但不破坏lua执行?但显示它出现的位置.
复制源代码 luaL_error,并使用字符串lua_tostring(L,-1)通过适当调用printf将结果替换为lua_error.像这样的东西: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)); }
不要忘记通过在lbaselib.c中添加一个名为base_funcs的条目或通过调用lua_register(L,“warn”,luaB_warn)将其导出到Lua.
本文共计249个文字,预计阅读时间需要1分钟。
Lua提供了`luaL_error`和`luaL_error`函数在C函数中使用,用于显示错误信息并停止Lua执行。例如:
cluaL_error(L, something bad);
这将显示错误信息Error: .../example/ex01.lua:6: something bad,包含出现错误的行和文件名。
Lua有luaL_error和lua_error函数在C函数中使用,如:luaL_error( L, "something bad" );
这将导致显示错误消息并且Lua执行停止.错误消息将包含它出现的行和文件:
Error: ../example/ex01.lua:6: something bad
是否有类似的函数显示错误但不破坏lua执行?但显示它出现的位置.
复制源代码 luaL_error,并使用字符串lua_tostring(L,-1)通过适当调用printf将结果替换为lua_error.像这样的东西: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)); }
不要忘记通过在lbaselib.c中添加一个名为base_funcs的条目或通过调用lua_register(L,“warn”,luaB_warn)将其导出到Lua.

