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.

Reply via email to