package main | |
// Tests of panic/recover. | |
import "fmt" | |
func fortyTwo() (r int) { | |
r = 42 | |
// The next two statements simulate a 'return' statement. | |
defer func() { recover() }() | |
panic(nil) | |
} | |
func zero() int { | |
defer func() { recover() }() | |
panic(1) | |
} | |
func zeroEmpty() (int, string) { | |
defer func() { recover() }() | |
panic(1) | |
} | |
func main() { | |
if r := fortyTwo(); r != 42 { | |
panic(r) | |
} | |
if r := zero(); r != 0 { | |
panic(r) | |
} | |
if r, s := zeroEmpty(); r != 0 || s != "" { | |
panic(fmt.Sprint(r, s)) | |
} | |
} |