我知道lua_call()
或lua_pcall()
之间的基本区别,后者提供了更多错误详情。
还有其他区别吗?如何决定使用哪个?
答案 0 :(得分:6)
当需要时,请使用lua_pcall
来处理代码中此时的潜在错误。否则,使用lua_call
并让错误向上移动到调用链。无需在任何地方使用lua_pcall
变得偏执。
lua_call
比lua_pcall
快。
只需确保顶部至少有一个lua_pcall
,否则您的应用会在发现任何Lua错误时发生恐慌并退出。
答案 1 :(得分:5)
除非您有一些 特定性能问题 ,否则请在所有情况下使用lua_pcall
。然后使用lua_call
。但同样,只有您分析您的应用程序并发现lua_call
将缓解的特定性能问题。
如果在lua_call
期间Lua抛出了Lua错误,那么您的应用程序几乎已被清除。因此,您需要确保尽可能使用lua_pcall
。