如何决定使用lua_call()还是lua_pcall()?

时间:2013-05-22 12:15:00

标签: c lua

我知道lua_call()lua_pcall()之间的基本区别,后者提供了更多错误详情。
还有其他区别吗?如何决定使用哪个?

2 个答案:

答案 0 :(得分:6)

需要时,请使用lua_pcall来处理代码中此时的潜在错误。否则,使用lua_call并让错误向上移动到调用链。无需在任何地方使用lua_pcall变得偏执。

lua_calllua_pcall快。

只需确保顶部至少有一个lua_pcall,否则您的应用会在发现任何Lua错误时发生恐慌并退出。

答案 1 :(得分:5)

除非您有一些 特定性能问题 ,否则请在所有情况下使用lua_pcall。然后使用lua_call。但同样,只有您分析您的应用程序并发现lua_call将缓解的特定性能问题。

如果在lua_call期间Lua抛出了Lua错误,那么您的应用程序几乎已被清除。因此,您需要确保尽可能使用lua_pcall