1. 程式人生 > >常見lua報錯型別

常見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')

    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、字串拼接個數限制