defer-recover异常捕获
package main
import (
"errors"
"fmt"
)
func funcRecover() error {
defer func() {
if v := recover(); v != nil {
fmt.Printf("panic recover!v:%v", v)
}
}()
return funcCook()
}
func funcCook() error {
panic("停水了")
return errors.New("发生错误了")
}
func main() {
err := funcRecover()
if err != nil {
fmt.Printf("\nerr is %v", err)
} else {
fmt.Printf("\nerr is nil")
}
}