よくあるluaエラータイプ

1805 ワード

タイプ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')
    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、文字列のつづり個数の制限