Hello!
2016-03-02 0:26 GMT-08:00 berson:
> 之前由于编写错误,引发runtime error, 想了解:一次runtime error意味着什么?
> 比如C进程出现SegmentFault时,意味着进程将退出。那么,openresty出现runtime error意味着什么呢?对性能有什么影响?
>
未捕获的 Lua 异常意味着当前的请求处理程序被中断,当前请求被终止。如果你不希望中断当前的请求,可以在你 Lua 处理程序的顶层使用
pcall 或者 xpcall 函数捕获任何可能的 Lua 异常。
应当尽量自己使用 Lua 异常来作错误处理,因为 Lua 异常的抛出和捕获的开销,相比自己通过 Lua
函数返回值来传递错误,要高很多。同样的原因,应该尽量避免 Lua 异常成为你的 Lua 应用的热代码路径。“异常”毕竟不该成为“常态”。
Regards,
-agentzh