首页 > 编程语言 > 详细

Lua语言学习-错误处理和调试

时间:2019-05-09 19:04:19      阅读:113      评论:0      收藏:0      [点我收藏+]

菜鸟教程 https://www.runoob.com/lua/lua-error-handling.html

asset函数

错误处理
local function add(a,b)
   assert(type(a) == "number", "a 不是一个数字")
   assert(type(b) == "number", "b 不是一个数字")
   return a+b
end
add(10)
--实例中assert首先检查第一个参数,若没问题,assert不做任何事情;否则,assert以第二个参数作为错误信息抛出。

error函数

  error (message [, level])
  error("巴拉巴拉")
  终止正在执行的函数,并返回message的内容作为错误信息

 

pcall

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

  pcall以一种"保护模式"来调用第一个参数,但是发送错误时,无法获得更多的错误调用信息

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

if pcall(function_name, ….) then
-- 没有错误
else
-- 一些错误
end

 

xpcall

  xpcall接收第二个参数——一个错误处理函数,当错误发生时,Lua会在调用桟展开(unwind)前调用错误处理函数,于是就可以在这个函数中使用debug库来获取关于错误的额外信息了

  

function myfunction ()
   n = n/nil
end

function myerrorhandler( err )
   print( "ERROR:", err )
end

status = xpcall( myfunction, myerrorhandler )
print( status)

 

调试debug

  常用的print(debug.traceback(),根据调用桟来构建一个扩展的错误消息

  关于debug更多内容,参看debug库

  

Lua语言学习-错误处理和调试

原文:https://www.cnblogs.com/orxx/p/10840081.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!