xpcall

pcall

pcall第一個參數接受一個函數,以後的都是傳遞給這個函數的參數。pcall以一種保護模式來調用第一個參數,若是執行過程當中有錯誤就返回false,沒錯誤就返回true。函數

local function fun()
    error(111)
end

if pcall(fun) then
    print('no error')
else
    print('has error')
end

-- has error

pcall實際上是會返回兩個值,第二個就是錯誤信息,若是沒有錯誤,那麼第二個返回值就是nillua

xpcall

pcall比pcall多接收一個參數,第二個參數接收一個錯誤處理函數。code

local function fun()
    error(111)
    return 'i am ret'
end

local function errorHandler(err)
    print('HAS ERROR!--->'.. err)
end

status, ret = xpcall(fun, errorHandler)
相關文章
相關標籤/搜索