package main
import (
"fmt"
"reflect"
)
func foo(){
defer fmt.Println("A")
fmt.Println("C")
defer func(){
defer func(){
fmt.Println("D")
}()
panic(2)
}()
panic(1)
}
func Panic(){
defer func(){
pv:= recover()
fmt.Println("recover err :")
fmt.Println("11:",reflect.TypeOf( pv))
}()
foo()
fmt.Println("end")
}
func main(){
Panic()
}
执行结果:
C
D
A
recover err :
11: int