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

我知道lua_call()lua_pcall()之间的基本区别,后者提供更多的错误细节。

还有其他区别吗?如何决定使用哪个?

点赞
用户107090
用户107090

当你需要在代码中处理潜在的错误时,请使用lua_pcall。否则,请使用lua_call并让错误沿着调用链向上移动。 没有必要在各处使用lua_pcall而变得过于偏执。

lua_calllua_pcall更快。

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

2013-05-22 12:21:19
用户734069
用户734069

除非您有一些特定的性能问题,否则在所有情况下都应使用lua_pcall。然后使用lua_call。但再次强调,仅当您已经对您的应用程序进行了_具体_性能问题检测并发现了lua_call可以缓解的问题时才使用。

如果Lua在lua_call期间抛出Lua错误,则您的应用程序基本上崩溃了。因此,您需要确保在可能的情况下使用lua_pcall

2013-05-22 14:36:32