常见lua报错类型

类型1,索引nil值

1、attempt to index a nil value (global 'a')

    a.name = "haha"

2、attempt to index a nil value (field 'name')

    a.name.first = "haha"

3、attempt to perform arithmetic on a nil value (global 'a')

    a=nil

    print(a+1)


类型2,数学计算,逻辑运算中有nil值

4、attempt to perform arithmetic on a nil value (global 'a')

    a=nil

    print(a+1)

5、attempt to perform bitwise operation on a nil value (global 'a')
    a=nil

    print(a & 1)


6、attempt to perform arithmetic on a nil value (field 'b')

扫描二维码关注公众号,回复: 3971590 查看本文章
    a = {}

    print(a.b &1)


类型3、调用nil值

7、attempt to call a nil value (global 'a')

    a=nil

    a()


8、attempt to call a nil value (field 'b')

    a={}

    a.f()


类型4、数学计算、位运算中使用非数字类型

9、attempt to perform arithmetic on a string value (global 'a')

    a="str"

    print(a+1)


10、attempt to perform arithmetic on a table value (global 'a')

    a = {}

    print(a+1)


11、attempt to perform arithmetic on a string value (field 's')

    a = {s="str"}

    print(a.s + 1)


12、attempt to perform arithmetic on a table value (field 's')

    a = {s={}}

    print(a.s + 1)


类型5、数量限制

1、stack overflow (函数调用栈超限 LUAI_MAXSTACK 1000000)

    function a() b() end

    function b() a() end

    a()


2、upvalue数量限制


3、参数个数限制


4、局部变量个数限制


5、字符串拼接个数限制


猜你喜欢

转载自blog.csdn.net/yuanfengyun/article/details/78001988