【问题标题】:Lua continue script executionLua 继续执行脚本
【发布时间】:2012-01-09 19:06:44
【问题描述】:

我有一个来自我的软件以前版本的配置文件,该配置文件基本上是一个 Lua 脚本。我正在使用 swig 生成包装器以与我的软件的 C API 接口。

我遇到的问题是,以前的配置文件中的一些指令在当前版本的软件中被删除了。

当我加载并运行 Lua 文件时,执行会在第一个错误处停止,并且配置文件的其余部分不会执行。

如何让Lua报错并在下一条指令继续执行脚本?

【问题讨论】:

  • 顺便说一句,这是 Lua 而不是 LUA。这不是首字母缩略词,只是为了提醒您。

标签: lua swig


【解决方案1】:

您可能想看看the error handling section in the Lua Manual (看这里for version5.1)。

这一切都归结为将“敏感”代码放入函数中并使用pcall 调用它。

更多关于处理错误的信息in Programming in Lua

【讨论】:

  • 我使用以下代码: if( luaL_dostring( L, code ) ) { printf( "error:%s\n", lua_tostring( L, -1 ) ); lua_pop(L, 1);一旦遇到错误,在错误发生后,我如何才能继续使用变量代码中的下一条 Lua 指令(这是一个相当大的块)继续/继续。我无法真正解析变量代码中的 Lua 指令,因为有一些 if、函数等……即使发现错误,我也必须告诉 Lua 继续执行脚本。这可能吗?
  • 没有。那样是不可能的。您应该将可能出错的代码包装在pcall 中。一旦发生错误,只是逻辑上Lua不能继续执行该chunk,它会退出pcall。只有在pcall 之后才会恢复执行。所以你需要深入研究 Lua 代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 2020-03-21
  • 2021-02-20
  • 2018-02-24
  • 1970-01-01
  • 2016-10-03
  • 2017-06-14
相关资源
最近更新 更多