处理LuaInterface中的语法错误

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

如果我执行语法正确的代码,则其按预期工作,但是只要脚本中引入语法错误(或似乎是任何其他错误),就会引发“SEHException”,而没有提供有关错误的任何信息。

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

当然,这完全使Lua的错误处理机制无效,并且对我而言是一个停机点。

显然,这是自2011年以来开放的已知错误

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

点赞
用户501459
用户501459

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 块中?

如果是这样,则可能是一个错误

2012-11-30 00:01:46