欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

openresty lua xpcall 异常处理函数循环被执行

程序员文章站 2022-07-16 13:16:17
...
-- require
local result = require "utils.result"


local _M = { _VERSION = '0.01', err_code = "E_0001"}


--[[
-- 定制日志输出, xpcall错误处理函数
-- 函数中不能使用ngx.exit等操作
-- @param _errmsg 异常信息
--]]
function _M.write_error(_errmsg)
    _M.track_text = debug.traceback(tostring(_errmsg), 6)

    ngx.log(ngx.ERR, _M.track_text)
end


-- equal try catch
function _M:trycall(_func)
    xpcall(_func, self.write_error)
    return result:error(_M.err_code, _M.track_text)
end


return _M
相关标签: openresty lua