blob: 21dcff312b2540f22030e2c757c61df5071c4824 [file] [log] [blame]
package main
import "strings"
import . "exception_order"
func main() {
a := NewA()
func() {
defer func() {
e := recover()
if strings.Index(e.(string), "E1") == -1 {
panic(e.(string))
}
}()
a.Foo()
}()
func() {
defer func() {
e := recover()
if strings.Index(e.(string), "E2") == -1 {
panic(e.(string))
}
}()
a.Bar()
}()
func() {
defer func() {
e := recover()
if e.(string) != "postcatch unknown" {
panic("bad exception order")
}
}()
a.Foobar()
}()
func() {
defer func() {
e := recover()
if strings.Index(e.(string), "E1") == -1 {
panic(e.(string))
}
}()
a.Barfoo(1)
}()
func() {
defer func() {
e := recover()
if strings.Index(e.(string), "E2") == -1 {
panic(e.(string))
}
}()
a.Barfoo(2)
}()
}