打开lol显示lua_pcall_Lua中的异常处理pcall、xpcall、debug使用实例

本文介绍了在Lua中处理错误的方法,重点讲解了pcall和xpcall的使用,以及如何通过debug库获取更详细的错误信息。通过示例代码展示了在出现错误时如何利用debug.traceback进行调试。
摘要由CSDN通过智能技术生成

如果需要在Lua中处理错误,必须使用函数pcall(protected call)来包装需要执行的代码。

pcall接收一个函数和要传递个后者的参数,并执行,执行结果:有错误、无错误;返回值true或者或false, errorinfo

复制代码 代码如下:

if pcall(function_name, ….) then

-- no error

else

-- some error

end

简单示例

复制代码 代码如下:

> =pcall(function(i) print(i) end, 33)

33

true

> =pcall(function(i) print(i) error('error..') end, 33)

33

false        stdin:1: error..

这里注意对返回值的逻辑判断

复制代码 代码如下:

> function f() return false,2 end

> if f() then print '1' else print '0' end

0

pcall以一种"保护模式"来调用第一个参数,因此pcall可以捕获函数执行中的任何错误。

通常在错误发生时,希望落得更多的调试信息,而不只是发生错误的位置。但pcall返回时,它已经销毁了调用桟的部分内容。Lua提供了xpcall函数,xpcall接收第二个参数——一个错误处理函数,当错误发生时,Lua会在调用桟展看(unwind)前调用错误处理函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值