<b>虽然会输出:defer1,但defer1里面的if为假,不知道为什么</b>
```go
package main
import (
"fmt"
)
var flag int = -1
func main() {
test()
}
func test() {
defer func() {
fmt.Println("defer1")
if err := recover(); err != nil {
fmt.Println("err1:",err)
}
}()
if flag > 0 {
panic(">0")
}
defer func() {
fmt.Println("defer2")
if err := recover(); err != nil {
fmt.Println("err2:",err)
}
}()
if flag < 0 {
panic("<0")
}
}
```