zoukankan      html  css  js  c++  java
  • Lua语言学习-错误处理和调试

    菜鸟教程 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库

      

  • 相关阅读:
    iOS 微信分享提示 未验证应用
    iOS 升级xcode12后原项目模拟器运行报错
    ZK进程监控
    kakafka
    mysql 通过使用联全索引优化Group by查询
    4. php反序列化从入门到放弃(放弃篇)
    微慕小程序专业版V3.5发布-小商店
    C++ Singleton模式
    C语言的clone与mmap调用
    InnoDB MVCC机制
  • 原文地址:https://www.cnblogs.com/orxx/p/10840081.html
Copyright © 2011-2022 走看看