(fn func() error)
| 26 | } |
| 27 | |
| 28 | func CapturePanic(fn func() error) (err error) { |
| 29 | defer func() { |
| 30 | if msg := recover(); msg != nil { |
| 31 | stack := debug.Stack() |
| 32 | |
| 33 | err = Error{ |
| 34 | error: fmt.Errorf("%s", msg), |
| 35 | Stack: defaultCleaner.clean(string(stack)), |
| 36 | } |
| 37 | } |
| 38 | }() |
| 39 | |
| 40 | err = fn() |
| 41 | return |
| 42 | } |
| 43 | |
| 44 | type Error struct { |
| 45 | error |