code: func CatchPanic(err_ref *error) {
  	r := recover()
  	if r == nil {
  		return
  	}
  	err, ok := r.(error)
  	if ok {
  		*err_ref = PanicError.Wrap(err)
  		return
  	}
  	*err_ref = PanicError.New("%v", r)
  }
docs: // CatchPanic can be used to catch panics and turn them into errors. See the
  // example.