lua 错误处理


lua 错误处理

      

          

                              

语法错误

         

语法错误编译不能通过,通常是由程序使用不当引起

       

示例:nil与整数相加

Lua 5.4.4  Copyright (C) 1994-2022 Lua.org, PUC-Rio
> a==2
false

-- a由于未赋值,默认为nil,不能和数值相加
> a+1
stdin:1: attempt to perform arithmetic on a nil value (global 'a')
stack traceback:
	stdin:1: in main chunk
	[C]: in ?

      

示例:语法缺少关键词

Lua 5.4.4  Copyright (C) 1994-2022 Lua.org, PUC-Rio
> t={1,2,3,4,5,6}

-- 遍历表:关键词是in
> for key,value int pairs(t) print(key,value) end
stdin:1: 'in' expected near 'int'

-- 遍历表,缺少关键词do
> for key,value in pairs(t) print(key,value) end
stdin:1: 'do' expected near 'print'

-- 遍历表,正常输出
> for key,value in pairs(t) do print(key,value) end
1	1
2	2
3	3
4	4
5	5
6	6

             

                  

                              

运行错误

         

运行错误可通过编译,在运行时由于参数传递等原因报错

       

示例:函数参数不对导致运行报错

Lua 5.4.4  Copyright (C) 1994-2022 Lua.org, PUC-Rio
> function fun(a,b) print(a+b) end

-- 传入1个参数,另一个参数没有赋值,默认为nil,nil不能与整数相加
> fun(1)
stdin:1: attempt to perform arithmetic on a nil value (local 'b')
stack traceback:
	stdin:1: in function 'fun'
	(...tail calls...)
	[C]: in ?

-- 传入两个数值,可正常相加
> fun(1,2)
3

-- 字符串类型不能相加
> fun('a','b')
stdin:1: attempt to add
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值