github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/gnovm/tests/files/recover6.gno (about) 1 package main 2 3 import ( 4 "errors" 5 ) 6 7 func main() { 8 println(f(false)) 9 println(f(true)) 10 } 11 12 func f(dopanic bool) (err error) { 13 defer func() { 14 if x := recover(); x != nil { 15 err = x.(error) 16 } 17 }() 18 q(dopanic) 19 return 20 } 21 22 func q(dopanic bool) { 23 if dopanic { 24 panic(errors.New("wtf")) 25 } 26 } 27 28 // Output: 29 // undefined 30 // wtf