在延迟函数中,您可以更改返回的参数,但不能返回新的参数集。因此,只需对现有内容进行简单的更改即可使其正常运行。
您编写的内容还有另一个问题,即您对a表示惊慌,
string但期望
error类型断言中出现a。
这是针对两者的解决方法(播放)
defer func() { if r := recover(); r != nil { fmt.Println("Recovered in f", r) // find out exactly what the error was and set err switch x := r.(type) { case string: err = errors.New(x) case error: err = x default: err = errors.New("Unknown panic") } // invalidate rep rep = nil // return the modified err and rep }}()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)