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

XA.*_*XA. 7 c lua

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

lhf*_*lhf 6

使用lua_pcall时,您需要在代码中的那个点来处理潜在的错误.否则,使用lua_call并让错误向上移动调用链.无需lua_pcall到处使用偏执狂.

lua_call比...更快lua_pcall.

只需确保lua_pcall顶部至少有一个或您的应用程序将发现任何Lua错误时出现恐慌并退出.

  • "*只需确保顶部或应用程序中至少有一个lua_pcall*"这假设Lua负责应用程序,而不是调用Lua执行特定任务的应用程序. (5认同)

Nic*_*las 5

使用lua_pcall,除非你有一些在所有情况下的具体性能问题.然后用lua_call.但同样,只有您已经分析了应用程序并发现了一个可以缓解的特定性能问题lua_call.

如果Lua在a期间抛出了Lua错误lua_call,那么你的应用程序几乎已被清除.所以你需要确保lua_pcall在可能的情况下使用它.

  • 我不同意.关键不在于性能:它是报告错误的地点和时间. (2认同)