recovery.go 392 B

12345678910111213141516171819
  1. package middleware
  2. import "coredemo/framework"
  3. func Recovery() framework.ControllerHandler {
  4. return func(c *framework.Context) error {
  5. // 核心在增加这个recover机制,捕获c.Next()出现的panic
  6. defer func() {
  7. if err := recover(); err != nil {
  8. c.Json(500, err)
  9. }
  10. }()
  11. c.Next()
  12. return nil
  13. }
  14. }