我正在尝试使用LuaInterface将Lua Scripting接口集成到我的C#项目中。
如果我执行语法正确的代码,它会按预期工作,但只要在脚本中引入语法错误(或看似任何其他错误),就会抛出SEHException
而没有任何有关错误的信息。
触发行为的简单示例:new LuaInterface.Lua().DoString("die");
这当然完全取消了Lua的错误处理机制,对我来说是一个显示阻碍。
显然这是known bug,自2011年开始营业。
是否有任何变通办法,没有此错误的LuaInterface版本或是否有正确处理错误的替代lua包装器?
答案 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?