C#执行前检查Lua脚本

C#执行前检查Lua脚本,c#,lua,C#,Lua,我最近在我的项目中实现了lua脚本,用户可以在游戏编辑器中输入自定义脚本,但问题是。。。他们可以很容易地输入一些随机的东西,程序将异常死亡 所以我的问题是:在执行lua脚本之前是否可以检查它?最好指出输入的脚本不正确的确切位置 我知道我可以添加“try”块,但这不是最好的解决方案 Upd:正如评论中所要求的:我正在使用Net4的“LuaInterface”构建。具体请参见手册中的内容。这将捕获编译时错误。然后,请参阅,或者参阅,以了解如何处理运行时错误。您可能希望熟悉异常处理。在你的问题中,你遗

我最近在我的项目中实现了lua脚本,用户可以在游戏编辑器中输入自定义脚本,但问题是。。。他们可以很容易地输入一些随机的东西,程序将异常死亡

所以我的问题是:在执行lua脚本之前是否可以检查它?最好指出输入的脚本不正确的确切位置

我知道我可以添加“try”块,但这不是最好的解决方案


Upd:正如评论中所要求的:我正在使用Net4的“LuaInterface”构建。

具体请参见手册中的内容。这将捕获编译时错误。然后,请参阅,或者参阅,以了解如何处理运行时错误。

您可能希望熟悉异常处理。在你的问题中,你遗漏了很多重要的信息,比如你使用什么样的库来编写lua脚本,所以我不能告诉你任何具体的信息(而且我不熟悉这项技术,只是在谷歌上搜索了一些)。我想如果你捕获到一个异常,它会提供一些关于导致它的额外信息,甚至可能是确切的位置。此外,异常处理是OO编程的许多优点之一,正确地利用它可以让你省去很多麻烦。@Robert hm。。。但是,我如何通过捕获异常来知道脚本中到底出了什么问题?我希望得到类似“执行前评估脚本”的东西:)捕获的异常是一个对象。你可以检查它的属性,也许它有导致它的信息。但同时我看到泥浆解决了你的问题。哦,太好了!这正是我想做的。请注意,
lua\u load
只检查语法错误。它无法确保脚本在执行时不会造成任何问题,因为这是不可能的。此外,如果要检查程序外的脚本,可以使用
luac
检查语法
luac-p
luac-t
将分别执行语法检查和完整性检查。