NLua 处理 C# 异常

NLua handling C# Exceptions

我正在查看 NLua 以编写现有 C# 应用程序的脚本,其中从 lua 调用的 C# 函数可能会引发异常。

到目前为止,我发现了这个:

前者允许我得到一个debug.traceback(),一个lua级的stackdump,但我没有得到异常的细节。 后者提供了例外,但无法获得 Lua stackdump(我在 .Source 中得到 lua 文件和行,但这还不够)。

问题是:

如有任何帮助,我们将不胜感激。 NLua 对于我的想法来说似乎近乎完美,如果我只能解决异常处理的话。

您需要使用脚本中的 pcall。 NLua 会将异常和 return 包装在由 pcall 编辑的第二个值 return 上。

error, exception = pcall (someFunction)

if (not error) then
    print(exception.Message)
end

Example on GitHub.