您的位置 首页 技术

golang如何捕获错误

func panic(interface{})和func recover() interface{}是Golang中用于错误处理的两个函数。 panic的作用就是抛出一条错误信息,…

func panic(interface{})和func recover() interface{}是Golang中用于错误处理的两个函数。

panic的作用就是抛出一条错误信息,从它的参数类型可以看到它可以抛出任意类型的错误信息。 (推荐学习:go)

在函数执行过程中的某处调用了panic,则立即抛出一个错误信息,同时函数的正常执行流程终止,但是该函数中panic之前定义的defer语句将被依次执行。之后该goroutine立即停止执行。

recover()用于将panic的信息捕捉。

recover必须定义在panic之前的defer语句中。在这种情况下,当panic被触发时,该goroutine不会简单的终止,而是会执行在它之前定义的defer语句。

捕捉自己设置的panic错误:

package mainimport "fmt"import "math"func foo(a int) {    defer fmt.Println("foo退出来了")    defer func() {        if r := recover(); r != nil {            fmt.Printf("捕获到的错误:%s\n", r)        }    }()    if a < 0 {        panic("必须输入大于0的数")    }    fmt.Println("该数的方根为:", math.Sqrt(float64(a)))}func main() {    var a int    a = 10    fmt.Printf("a=%d\n", a)    foo(a)    var b int    b = -10    fmt.Printf("b=%d\n", b)    foo(b)    fmt.Println("该goroutine还可以执行")}// ///////////a=10该数的方根为: 3.1622776601683795foo退出来了b=-10捕获到的错误:必须输入大于0的数foo退出来了该goroutine还可以执行Process finished with exit code 0

以上就是golang如何捕获错误的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/17412.html

为您推荐

返回顶部