lua的異常處理機制
阿新 • • 發佈:2019-02-02
lua中的錯誤處理主要有幾個方法:pcall() ; xpcall() ; error() ; assert()
測試程式碼如下:
--lua異常處理 ------------pcall函式 丟擲錯誤但是程式不會停止 --[[function method2() print(a[2]) end local a,b = pcall(method2) if a then print("函式沒有錯誤") else print("函式有錯誤") print(b) --打印出錯誤資訊 end]] ----------------xpcall函式 丟擲錯誤但是程式不會停止 --[[function method4() print(a[1]) --輸出 報錯:attempt to index global 'a' (a nil value) method6 false -- print(2) --輸出 2 true end function method6() print("method6") end function method5(err2) print(err2) method6() end local status = xpcall(method4,method5) --當發生錯誤時,呼叫第二個引數(一個錯誤處理函式) print(status) --函式返回true或者false]] ---------------error函式 error(message,level) 遇到錯誤程式會停止 --[[ function method3() local ming = io.read() if ming ~="小明" then -- error("我需要的是小明") --level=1(預設)/level=2 :呼叫error函式的位置(lua檔案和對應的行號) --error("我需要的是小明",0) -- level=0 :不新增錯誤位置資訊 end end method3()]] -----------------assert函式 assert(v,message) 遇到錯誤程式會停止 --[[ local ming = io.read() assert(ming=="小明","我需要的時小明") --當引數v返回false時,報錯並列印message資訊 ]]