处理LuaInterface中的语法错误

时间:2012-11-29 21:37:22

标签: c# error-handling lua syntax-error luainterface

我正在尝试使用LuaInterface将Lua Scripting接口集成到我的C#项目中。

如果我执行语法正确的代码,它会按预期工作,但只要在脚本中引入语法错误(或看似任何其他错误),就会抛出SEHException而没有任何有关错误的信息。

触发行为的简单示例:new LuaInterface.Lua().DoString("die");

这当然完全取消了Lua的错误处理机制,对我来说是一个显示阻碍。

显然这是known bug,自2011年开始营业。

是否有任何变通办法,没有此错误的LuaInterface版本或是否有正确处理错误的替代lua包装器?

1 个答案:

答案 0 :(得分:2)

DoString遇到的Lua错误(语法或运行时错误)应该导致LuaException被抛出。它的消息将包含Lua生成的错误字符串。例如,给出你的例子:

try
{
    new LuaInterface.Lua().DoString("die");
}
catch (LuaException ex)
{
    Console.WriteLine(ex.Message);
}

您应该收到以下错误:

[string "chunk"]:1: '=' expected near '<eof>'

您没有显示任何衬垫的上下文。它是否包含在try-catch块中?

如果是这样,也许是a bug