go- 6.5 错误处理

1. 基本说明

1. go不支持传统的try---finally
2. go中引入的处理方式为:defer,panic,recover
3. 描述:go中可以抛出一个panic异常,然后在defer中通过recover捕获这个异常,然后正常处理

2. 使用defer+recover来处理错误

package main
import(
    "fmt"
    "time"
)

func test(){
    defer func(){
        err := recover  // recover()可以捕获到异常
        if err != nil {
            fmt.Println("err=", err)
        }
    }()
    num1 := 10
    num2 := 0
    res := num1/num2
    fmt.Println("res", res)
}

func main(){
    test()
}

3.自定义错误

1. 使用errors.New("错误说明")和panic内置函数
2. errors.New("错误说明"),会返回一个error类型的值,表示一个错误
3. panic内置函数,接收一个interface{}类型的值(也就是任何值)作为参数,可以接收error类型的变量,输出错误信息,并退出程序

 

posted @ 2020-12-23 22:07  10132714  阅读(74)  评论(0编辑  收藏  举报