2
我正在構建一套用於Lua解釋器的嵌入式實例(目標受衆是特定產品的用戶)的通用庫。假設我沒有權限更改Lua可執行文件的功能,並且只有基本的標準Lua庫(數學,字符串,...,異常不是io)。什麼是用純Lua表示錯誤的慣用方法?
在純粹的Lua庫中處理運行時錯誤的習慣用法是什麼?
我已經考慮過返回nil
,但這並不表示出了什麼問題,特別是如果錯誤發生在深層嵌套的地方。我的下一個想法是返回兩個值,nil
和一個錯誤代碼或描述。我還考慮過一組類似於Windows API的GetLastError(和相應的SetError)的全局函數。
你用什麼?你認爲各種方法的各種優點/缺點是什麼?我是否應該考慮一些更激進的事情,比如在pcall
中包裝所有內容並故意索引userdata
以導致錯誤?