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库

      

  • 相关阅读:
    29 顺时针打印矩阵(四-画图让抽象问题形象化)
    27 二叉树镜像(四-画图让抽象问题形象化)
    java的4种代码块
    Eclipse中连接Sql Sever2008 -----转自Yogurshine
    java之HashMap的遍历Iterator
    java之插入排序
    java之选择排序
    java之冒泡排序
    java之快速排序
    java之折半查找
  • 原文地址:https://www.cnblogs.com/orxx/p/10840081.html
Copyright © 2011-2022 走看看