快速體驗,學習lua(一種可嵌入c++,c#,android,object-c等並進行互調支持熱更新的腳本)的入門調試系列(3)

--這裏是註釋
--[[
功能備註:lua快速體驗,學習,瞭解語法(調試,相似try-catch)
建立時間:2020-6-27
建立人:pcw
--]]
print("--------------------------------");
print("相似throw exception(該方法拋異常以後,整個代碼文件不往下走.)");
 function addTestThrowException(a)
   assert(type(a) == "number", "a 不是一個數字")  --異常以後,後面的代碼不執行
   return a*a;
end
print(addTestThrowException(5));
--[[
  輸出結果:
  相似throw exception
25
]]
--print(addTestThrowException("ab"));
--[[
解開上面的註釋,輸出結果:
lua: Lua-調試.lua:10: a 不是一個數字
stack traceback:
    [C]: in function 'assert'
    Lua-調試.lua:10: in function 'addTestThrowException'
    Lua-調試.lua:19: in main chunk
    [C]: ?
]]

print("--------------------------------");
print("pcall:相似try-catch但不提供  調試信息");
print("pcall(addTestThrowException,5)=",pcall(addTestThrowException,5));
print("pcall(addTestThrowException,\"a\")=",pcall(addTestThrowException,"a"));



print("--------------------------------");
print("xpcall相似try-catch但且提供調試信息  ");
local function addTestThrowException2(a)
   print(a);
   return a*a;
end

function processException(err)
   --debug.debug();
   --print(debug.debug());
   --print("ERROR:",err);
   --print(debug.getinfo(1))
   debug.traceback();
   return false;
end
print(addTestThrowException2(5));
xpcall(addTestThrowException2,processException,5);
相關文章
相關標籤/搜索