2012-09-23 83 views
-1

我最近在我的项目中实现了lua脚本,并且用户可以在游戏编辑器中输入自定义脚本,但这里有问题......他们可以轻松地输入一些随机的东西,该程序将与例外...C#在执行之前检查Lua脚本

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

我知道我可以添加“尝试”块,但它不是最好的解决方案。

UPD:如评论请求:我使用的是 “LuaInterface” 建立NET 4.

+0

您可能想要熟悉异常处理。你错过了很多你的问题中的重要信息,比如你使用了哪种类型的lua脚本库,所以我不能告诉你任何具体的东西(我对技术不熟悉,只是搜索了一些)。我猜如果你发现一个异常,它会提供一些关于是什么引起的,甚至是确切位置的附加信息。 – Robert

+0

异常处理也是面向对象编程的诸多优点之一,您可以通过正确使用它来免除许多头痛。 – Robert

+0

@Robert hm ...但是我怎么知道脚本中捕捉异常究竟出了什么问题?我希望有像“评估脚本执行之前”的东西:) – NewProger

回答

3

error handling手册中,特别是lua_load。这将捕获编译时错误。然后,请参阅lua_pcall以及可能的luaL_traceback来处理运行时错误。

+0

哦,太棒了!这正是我想要做的。 – NewProger

+2

请注意'lua_load'只检查语法错误。它不能确保脚本的执行不会造成任何麻烦,因为这是不可能的。另外,如果你想在程序之外检查一个脚本,你可以使用'luac'来检查语法; 'luac -p '和'luac -t '将分别执行语法检查和完整性检查。 –