lua的异常处理

--错误处理:assert断言,第一个参数为false或者nil时会报错,错误信息为参数2

--assert(nil, "cannont be nil")

--assert(false, "cannont br false")

--保护调用pcall(function, ...)

function test(name)

    error({msg = "error1"})

end

function pcallTest()

    --ok:false时表示有错误,err是error对象,在test函数中error = {msg = "error1"}

    local ok,err = pcall(test,1)

    if ok then

        print("not error")

    else

        print(err.msg)

    end

end

function error_handle(error)

    --错误的回溯深度2

    print(debug.traceback(error.msg, 2))

end

function xpcallTest()

    --第二个参数为错误处理函数

    if xpcall(test, error_handle) then

        print("success")

    else

        print("failure")

    end

end

--pcallTest()

xpcallTest()

你可能感兴趣的:(lua的异常处理)