零基础学lua第九天—错误异常

一、前言

每个编程语言在编写代码的过程中都会产生一些错误和异常,这个时候我们需要处理,只有这样才会尽可能的避免错误和异常带给我们的损失。

二、错误

错误在很多时候都是无法避免的,一般我们会将这一系列错误归为语法错误和运行时错误,下面我们一个个来看看,如下:

lua tostring 异常 lua exception!_编写代码

这里就报了一个错误,原因就是我们少了一个do…end语句,下面添加上,如图:

lua tostring 异常 lua exception!_lua_02

这样就可以了;还有一类运行时错误,这类错误不同意检查出来,因为他是发生在运行的时候的错误,如下:

lua tostring 异常 lua exception!_编写代码_03

此时我们可以看到,虽然没有报错,但是也没有打印出结果,这是因为我们没有考虑到变量等于12的这种结果,因此程序就没法打印出结果,这就是运行时错误。那么我们该如何杜绝这种错误了,lua给我们提供了两种方法,如下:

1.assert

这个相信很多人都比较清楚,断言嘛,就是比较两个结果是否相同,如下:

lua tostring 异常 lua exception!_lua tostring 异常_04

这样就可以通过判断参数的类型来提示错误的产生并使用适当的参数来纠错了。

2.error

如果我们想要直接获取lua中给我们准备的错误反馈信息的话,我们可以直接使用error然后设置它的错误显示级别即可,常见错误级别如下:

1[默认]:调用error的位置
2:指出哪个调用error
0:不添加错误位置信息

我们来看下,如下:

lua tostring 异常 lua exception!_lua_05

这样就输出了我们预先准备好的错误提示语句。

三、异常

异常使我们可以捕获并且能够解决的错误,lua中可以使用pcall 和xpacll来解决异常的产生。

1.pcall

lua tostring 异常 lua exception!_编写代码_06


lua tostring 异常 lua exception!_运行时错误_07

我们可以看到,虽然我们第一次的参数赋值产生了一个错误,但是并没有报错,而是直接忽略了,这说明我们成功捕获并处理了这类异常。

2.xpcall

与上面不同的是,他会对错误进行处理,返回一个状态码,如下:

lua tostring 异常 lua exception!_lua tostring 异常_08

四、总结

以上就是lua中对于错误和异常的处理方式了,是不是感觉超级简单了,赶紧动手试试吧。