Source File
recover.go
Belonging Package
github.com/gofiber/fiber/v2/middleware/recover
package recover //nolint:predeclared // TODO: Rename to some non-builtin
import (
)
func defaultStackTraceHandler( *fiber.Ctx, interface{}) {
_, _ = os.Stderr.WriteString(fmt.Sprintf("panic: %v\n%s\n", , debug.Stack())) //nolint:errcheck // This will never fail
}
// New creates a new middleware handler
func ( ...Config) fiber.Handler {
// Set default config
:= configDefault(...)
// Return new handler
return func( *fiber.Ctx) ( error) { //nolint:nonamedreturns // Uses recover() to overwrite the error
// Don't execute middleware if Next returns true
if .Next != nil && .Next() {
return .Next()
}
// Catch panics
defer func() {
if := recover(); != nil {
if .EnableStackTrace {
.StackTraceHandler(, )
}
var bool
if , = .(error); ! {
// Set error that will call the global error handler
= fmt.Errorf("%v", )
}
}
}()
// Return err if exist, else move to next handler
return .Next()
}
}
![]() |
The pages are generated with Golds v0.6.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |