err.go 319 B

123456789101112131415161718192021222324
  1. package goStrongswanVici
  2. import (
  3. "fmt"
  4. )
  5. func handlePanic(f func() error) (err error) {
  6. defer func() {
  7. r := recover()
  8. //no panic
  9. if r == nil {
  10. return
  11. }
  12. //panic a error
  13. if e, ok := r.(error); ok {
  14. err = e
  15. return
  16. }
  17. //panic another stuff
  18. err = fmt.Errorf("%s", r)
  19. }()
  20. err = f()
  21. return
  22. }