xpcall 接受兩個引數:呼叫函式、錯誤處理函式。local status, msg = xpcall(main, __g__trackback__)
-- for ccluaengine traceback
function __g__trackback__(msg)
local message = debug.traceback(msg, 3)
if qy.debug then
self:showbugmesg("lua error:\n\t" .. message)
end-- 上報異常日誌
require("utils.analytics"):oncrash(message)
print("----------------------------------------")
print("錯誤資訊\nlua error:\n\t" .. message)
print("----------------------------------------")
return msg
end
當錯誤發生時,lua會在棧釋放以前呼叫錯誤處理函式,因此可以使用debug庫收集錯誤相關資訊。
常用的debug處理函式:debug.debug和debug.traceback,
前者給出lua的提示符,你可以自己動手察看錯誤發生時的情況;
後者通過traceback建立更多的錯誤資訊,也是控制台直譯器用來構建錯誤資訊的函式。
你可以在任何時候呼叫debug.traceback獲取當前執行的traceback資訊。
lua以xpcall實現try catch功能
列印錯誤資訊 local function trackback errmsg local track text debug.traceback tostring errmsg 6 print trackback print track text,lua error print trackback l...
lua以xpcall實現try catch功能
列印錯誤資訊 local function trackback errmsg local track text debug.traceback tostring errmsg 6 print trackback print track text,lua error print trackback l...
lua中實現繼承
什麼是元表 元表像是乙個 操作指南 裡面包含了一系列操作的解決方案,例如 index方法就是定義了這個表在索引失敗的情況下該怎麼辦。index元方法 很多人對此都有誤解,這個誤解是 如果a的元表是b,那麼如果訪問了乙個a中不存在的成員,就會訪問查詢b中有沒有這個成員。而這個理解是完全錯誤的,實際上,...