[GO]revoer的应用
Posted baylorqu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[GO]revoer的应用相关的知识,希望对你有一定的参考价值。
error的函数只是用来报一些低等级的错误,panic是报那些会导致程序崩溃的错误,但是会有一个问题就是panic也会导致程序中断 ,如果我们需要程序在报错之后继续运行并报出错误的信息
就需要使用到recover
package main import "fmt" func testa() { fmt.Println("aaaaaaaaaa") } func testb(x int) { defer func() { //注意这里,一定要写在上面,使用defer函数,如果有异常,则在退出程序之后执行revoer,打印了错误之后继续执行下面的程序 if err:=recover();err != nil{//在使用了超出数组范围的索引之后,这里就会有一个panic异常 fmt.Println("error = ", err) }else { fmt.Println("bbbbbbbbbbbbb") } }() var a [10]int a[x] = 555 } func testc() { fmt.Println("ccccccccccc") } func main() { testa() testb(1) testc() }
这里传的值小于10的时候,正常打印
传的值大于10的时候则会打印异常日志并继续执行程序
以上是关于[GO]revoer的应用的主要内容,如果未能解决你的问题,请参考以下文章
解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段
npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段