Lua 编译在 C++ 中使用 throw 进行 yield,使得调试变得复杂

Lua 编译在 C++ 中,因此在错误时使用 throw 而不是 setjmp。 这很好,直到我意识到它不仅在错误时 throw,而且在协程 yield 或者我错过了某些事情时也会 throw。因此,当我想要在 CLion 上启用 Pause on exception 时,我的游戏每帧都会暂停,因为协程被大量使用。那么,如何只禁用 CLion 对 Lua 异常的暂停呢?我无法做到。这个简单的原因足以使我相信将 Lua 编译在 C 中。

作为一个辅助问题,这是否会导致性能问题,因为异常通常被指责为性能问题,特别是对于游戏?

原文链接 https://stackoverflow.com/questions/70038322

点赞