Playing with recovery from a panic - this code does what i expect: ( https://play.golang.org/p/p5KvOYc1sx)
package main import "fmt" func main() { defer func() { fmt.Println("main:",recover()) }() a() } func a() { panic("yikes") } Results in: main: yikes A simpler version without the closure doesn't catch the panic: ( https://play.golang.org/p/0ICqqdi2kL) package main import "fmt" func main() { defer fmt.Println("main:",recover()) a() } func a() { panic("yikes") } Produces: main: <nil> panic: yikes goroutine 1 [running]: main.a() /tmp/sandbox638763687/main.go:11 +0x60 main.main() /tmp/sandbox638763687/main.go:7 +0x100 I see the same behavior on linux/amd64 go1.8 Any idea why the second version fails to catch that panic? Thanks, Stefan -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.