2012-09-23 22 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 '將分別執行語法檢查和完整性檢查。 –