code: func Recover(ctx context.Context, v interface{}) (e error) {
  	switch err := v.(type) {
  	case nil:
  		e = nil
  	case error:
  		e = New(ctx, err, 0)
  	default:
  		e = New(ctx, fmt.Errorf("%v", err), 0)
  	}
  
  	return e
  }
docs: // Recover wraps the return value of recover() to capture a panic stack correctly.