本文要介绍的Lua错误处理包括assert、pcall/xpcall以及debug.traceback。
assert断言,与两个参数,第一个参数为条件,第二个参数为条件不成立时的错误信息。
例如:
assert(a," 'a' cannot be nil")
当a为nil或者false的时候,会触发错误,并报错。
assert断言一般使用在不该出现的错误上,例如我们要实现一个平方根的方法,就要断言输入参数大于等于0。
pcall是保护调用(protected call)。使用方法:pcall(f,...)。f是被保护的方法,...是变长参数,代表f使用的参数。
例如