Go语言异常处理

2018-09-29  本文已影响0人  AuglyXu

异常处理


提示错误信息(不终止程序)

方法一

方法二

if res, err := div(10, 0); err == nil {
        fmt.Println(res)
    }else{
        fmt.Println(err)
    }


func div(a, b int) (res int, err error) {
    if b == 0 {
        // 创建一个异常信息
        //fmt.Println(fmt.Errorf("除数不能为0"))
        //err = fmt.Errorf("除数不能为0")
        err = errors.New("除数不能为0")
    }else{
        res = a / b
    }
    return
}

中断程序

func div(a, b int) (res int) {
    if b == 0 {
        // 手动终止程序
        panic("除数不能为0")
    }else{
        res = a / b
    }
    return
}

异常恢复


异常恢复注意点

以下代码会打印异常B

    defer func() {
        if err := recover(); err != nil{
            fmt.Println(err)
        }
    }()

    //panic("异常A")
    defer func() {
        panic("异常B")
    }()
    panic("异常A")
上一篇下一篇

猜你喜欢

热点阅读