go 函数中,返回值未命名,发生了 panic,但是在函数内 recover 了,函数返回什么值?怎么解决?

我的学习仓库,欢迎交流学习:github.com/Benny66/goStudy.git
go 函数中,返回值未命名,发生了 panic,但是在函数内 recover 了,函数返回什么值?怎么解决?

func test() error {
    var err error
    defer func() {
        if r := recover(); r != nil {
            err = errors.New(fmt.Sprintf("%s", r))
        }
    }()
    raisePanic()
    return err
}
func raisePanic() {
    panic("发生了错误")
}

以下是我的修改,要是兄弟们有其他解决方法请评论留言,欢迎交流学习


func test() error {
    var err error
    defer func() {
        if r := recover(); r != nil {
            err = errors.New(fmt.Sprintf("%s", r))
        }
    }()
    err = raisePanic()
    return err
}
func raisePanic() (err error) {
    defer func() {
        if r := recover(); r != nil {
            err = errors.New(fmt.Sprintf("raisePanic函数异常:%s", r))
        }
    }()
    panic("发生了错误")
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
野生菌
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!