pcall

    xiaoxiao2022-07-06  250

    lua代码

    --[[ pcall出现原因 程序执行过程中可能会抛出异常,如果这个错误需要应用自己处理, 使用pcall函数,避免抛出异常栈。 pcall 正常执行:返回true和被执行函数的返回值 异常执行:返回nil和错误信息。错误信息不一定是一个字符串 ]] function bar() error("unknown") end function foo() --these two kinds of creating table are both ok --error({['code'] = 0, ['message'] = "unknown"}) error({code = 0, message = "unknown"}) end --[[ err can not only be string, it can be table or something else ]] local ok, err = pcall(foo) if not ok then print(err.code, err.message) end --[[ compare using pcall with not using pcall ]] --use pcall local ok, err = pcall(bar) if not ok then print(err) end --not use pcall, it will show stack traceback bar()

    运行结果

    0    unknown pcall.lua:12: unknown lua: pcall.lua:12: unknown stack traceback:     [C]: in function 'error'     pcall.lua:12: in function 'boo'     pcall.lua:41: in main chunk     [C]: ?

    最新回复(0)