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 协议》,转载必须注明作者和本文链接