如果luaL_loadfile失败,请获取错误信息

时间:2013-10-03 11:30:36

标签: lua

如果luaL_load函数失败,则根据文档(Lua5.1),错误消息被推送到堆栈上,可以使用lua_tostring(L, -1)检索,但如果我想打印自定义错误消息,我认为我不能使用lua_Debug(因为那是活动功能)。有没有其他方法(解析字符串除外)获取文件行号发生了什么错误

- 感谢。

2 个答案:

答案 0 :(得分:3)

luaL_loadfile返回的错误代码会告诉您发生了什么类型的错误。您最有可能只对LUA_ERRSYNTAX感兴趣,在这种情况下,堆栈上会留下详细的错误消息。这是错误的唯一记录。如果需要重新格式化,则需要解析它。

答案 1 :(得分:1)

在luaL_load()期间,堆栈上没有任何与加载脚本相关的技术。脚本中不执行或执行任何功能。它只是一个编译步骤,返回一个封装整个文件的函数或编译时发现的错误。

如果你得到一个函数,你执行它来实际运行脚本,这听起来像你真正感兴趣的。在这种情况下,你可以使用lua_pcall()并提供错误处理程序。在您的处理程序中,您可以通过lua_Debug获得预期的堆栈跟踪。