Go异常处理

2018-04-19  本文已影响0人  一斤蔬菜

想法

Go的异常处理是比较特别的.有人不喜欢这种走两步就 if err,然而生活就是这样.

func getOrderNo(detail interface{}) (s string, err error) {
    defer func() {
        if recover() != nil {
            err = errors.New("发生错误")
        }
    }()
    panic(err.Error()) //手动触发ERROR
    return
}

这是我理解的实现方式之一,在错误可能发生之前,定义好如果发生了错误要做什么.
这样一旦发生错误,唯一会执行的就是defer 后边的 func,recover会捕获发生的错误,手动转化为err对象之后,后续可以作出相应的处理.

上一篇下一篇

猜你喜欢

热点阅读