欢迎访问个人博客站点: 配置啦
随笔 - 109  文章 - 2  评论 - 20  阅读 - 55511

快速体验,学习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);
复制代码

 

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示