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