• Lua中assert( )函数的使用


    当Lua遇到不期望的情况时就会抛出错误,比如:两个非数字进行相加;调用一个非函数的变量;访问表中不存在的值等。你也可以通过调用error函数显示的抛出错误,error的参数是要抛出的错误信息。
    assert(a,b) a是要检查是否有错误的一个参数,b是a错误时抛出的信息。第二个参数b是可选的。
    
    print("enter a number:")
    n = io.read("*number")
    if not n then
        error("invalid input")
    end

    Lua提供了专门的内置函数assert( )来完成上述的类似功能

    print("enter a number:")
    n = assert(io.read("*number"), "invalid input")

    assert首先检查的是第一个参数是否返回错误,如果不返回错误,则assert简单返回,否则则以第二个参数抛出异常信息。 
    assert()是普通函数,他首先计算两个参数,然后在调用函数,如:

    n = io.read()
    assert(tonumber(n), "invalid input:" .. n .. "is not a number")

    先进行tonumber(n), "invalid input:" .. n .. "is not a number"这两个参数的计算。

    没用assert( )时:

    input = io.read("*number")
    print(input)

    运行结果:

    nil
    [Finished in 0.3s]

    用assert( )时:

    input = assert(io.read("*number"))
    print(input)

    运行结果:

    lua: D:UserProfilesBenLuoDesktopstudy	est.lua:44: assertion failed!
    stack traceback:
        [C]: in function 'assert'
        D:UserProfilesBenLuoDesktopstudy	est.lua:44: in main chunk
        [C]: ?
    [Finished in 0.3s with exit code 1]
  • 相关阅读:
    放缩ImageView
    2017/5/3 afternoon
    2017/5/3 morning
    2017/5/2 afternoon
    2017/5/2 morning
    2017/4/28 afternoon
    2017/4/28 morning
    2017/4/27 afternoon
    2017/4/27 morning
    2017/4/26 afternoon
  • 原文地址:https://www.cnblogs.com/yunlongaimeng/p/9497458.html
Copyright © 2020-2023  润新知