在Go语言中我们首先来看一下err错误信息,我们先来看一段代码
1 | package main |
在这里我们可以接收到错误信息并打印出来,我们先看一下会报错吗?结果显示部会报错的,因为我们接收到了错误并打印出来了
我们看这里并没有报错,而是打印出了错误 信息,
在Go中我们还可以直接调用panic函数来终止程序,
我们来看这张图,这张图里面我们给数组定义为10个长度,然后下面直接调用下标为10的数组,这样会出什么错误呢,这样就是数组下标超出范围,因为数组下标是从0开始到长度减一,我们来看一下编译器运行的结果报什么错,
编译提示panic异常,然后提示数组下标越界,这是因为当我们写程序时,比如遇到一些错误比如:数组下标越界,空指针异常,野指针这些错误的时候,系统就会调用自己本身的panic函数,那么我们自己在写程序的时候也是可以调用panic函数的,下面来看这段代码
1 | package main |
我们来看一下运行结果
在这里我们看到,只打印了上面的三句话,当遇到panic函数的时候就会程序崩溃,然后下面的程序停止执行,我们不仅仅可以使用panic来终止程序,我们还可以捕获错误后继续执行程序,我们来看下一段代码
1 | package main |
看这段代码,然后我们来看一下运行结果
第一句话直接打印出了错误:运行时错误,数组下标越界,但是程序并没有终止而是继续运行下去了这是为什么了,
如图所示,这里我们延迟调用了一下,因为recover必须和defer配合使用,并且调用一定要在错误出现之前调用才有效果,这样捕获到了错误并且恢复了程序的控制权。