1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-25 23:43:46 +00:00
fiber/middleware/recover.go
2020-03-14 12:30:21 +01:00

35 lines
653 B
Go

package middleware
import (
"fmt"
"log"
"github.com/gofiber/fiber"
)
// Recover ...
func Recover(handle ...func(*fiber.Ctx, error)) func(*fiber.Ctx) {
log.Println("Warning: middleware.Recover() is deprecated since v1.8.3, please use github.com/gofiber/recover")
h := func(c *fiber.Ctx, err error) {
log.Println(err)
c.SendStatus(500)
}
// Init custom error handler if exist
if len(handle) > 0 {
h = handle[0]
}
// Return middleware handle
return func(c *fiber.Ctx) {
defer func() {
if r := recover(); r != nil {
err, ok := r.(error)
if !ok {
err = fmt.Errorf("%v", r)
}
h(c, err)
}
}()
c.Next()
}
}