我正在尝试使用LuaInterface将Lua脚本接口集成到我的C#项目中。
如果我执行语法正确的代码,它就会正常工作,但是一旦在脚本中引入语法错误(或任何其他错误),就会抛出SEHException,而不会抛出任何有关该错误的信息。
触发该行为的一个简单示例:new LuaInterface.Lua().DoString("die");
当然,这完全使Lua的错误处理机制无效,这对我来说是一个阻碍。
显然,这是一个从2011年开始开放的known bug。
有没有什么变通的办法,没有这个bug的LuaInterface版本,或者有没有替代的lua包装器,可以正确地处理错误?
发布于 2012-11-30 08:01:46
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
https://stackoverflow.com/questions/13635199
复制相似问题