check errors
Vladimir Bauer
3 years ago
| 363 | 363 | // recovering if user defined decorator panics for example |
| 364 | 364 | if p := recover(); p != nil { |
| 365 | 365 | if s.debugOut != nil { |
| 366 | fmt.Fprintln(s.debugOut, p) | |
| 367 | _, _ = s.debugOut.Write(debug.Stack()) | |
| 366 | for _, fn := range []func() (int, error){ | |
| 367 | func() (int, error) { | |
| 368 | return fmt.Fprintln(s.debugOut, p) | |
| 369 | }, | |
| 370 | func() (int, error) { | |
| 371 | return s.debugOut.Write(debug.Stack()) | |
| 372 | }, | |
| 373 | } { | |
| 374 | if _, err := fn(); err != nil { | |
| 375 | panic(err) | |
| 376 | } | |
| 377 | } | |
| 368 | 378 | } |
| 369 | 379 | s.aborted = !s.completed |
| 370 | 380 | s.extender = makePanicExtender(p) |