1package main 2 3// Tests of panic/recover. 4 5import "fmt" 6 7func fortyTwo() (r int) { 8 r = 42 9 // The next two statements simulate a 'return' statement. 10 defer func() { recover() }() 11 panic(nil) 12} 13 14func zero() int { 15 defer func() { recover() }() 16 panic(1) 17} 18 19func zeroEmpty() (int, string) { 20 defer func() { recover() }() 21 panic(1) 22} 23 24func main() { 25 if r := fortyTwo(); r != 42 { 26 panic(r) 27 } 28 if r := zero(); r != 0 { 29 panic(r) 30 } 31 if r, s := zeroEmpty(); r != 0 || s != "" { 32 panic(fmt.Sprint(r, s)) 33 } 34} 35