mirror of
https://github.com/gofiber/fiber.git
synced 2025-05-31 11:52:41 +00:00
Update error handler
This commit is contained in:
parent
5739c24f0d
commit
a8f8f30b5d
24
app.go
24
app.go
@ -54,14 +54,14 @@ type App struct {
|
|||||||
type Settings struct {
|
type Settings struct {
|
||||||
// ErrorHandler is executed when you pass an error in the Next(err) method
|
// ErrorHandler is executed when you pass an error in the Next(err) method
|
||||||
// This function is also executed when middleware.Recover() catches a panic
|
// This function is also executed when middleware.Recover() catches a panic
|
||||||
// Default: func(ctx *Ctx) {
|
// Default: func(ctx *Ctx, err error) {
|
||||||
// code := StatusInternalServerError
|
// code := StatusInternalServerError
|
||||||
// if e, ok := ctx.Error().(*Error); ok {
|
// if e, ok := err.(*Error); ok {
|
||||||
// code = e.Code
|
// code = e.Code
|
||||||
// }
|
// }
|
||||||
// ctx.Status(code).SendString(ctx.Error().Error())
|
// ctx.Status(code).SendString(err.Error())
|
||||||
// }
|
// }
|
||||||
ErrorHandler Handler
|
ErrorHandler func(*Ctx, error)
|
||||||
|
|
||||||
// Enables the "Server: value" HTTP header.
|
// Enables the "Server: value" HTTP header.
|
||||||
// Default: ""
|
// Default: ""
|
||||||
@ -220,12 +220,12 @@ func New(settings ...*Settings) *App {
|
|||||||
Prefork: utils.GetArgument("-prefork"),
|
Prefork: utils.GetArgument("-prefork"),
|
||||||
BodyLimit: 4 * 1024 * 1024,
|
BodyLimit: 4 * 1024 * 1024,
|
||||||
Concurrency: 256 * 1024,
|
Concurrency: 256 * 1024,
|
||||||
ErrorHandler: func(ctx *Ctx) {
|
ErrorHandler: func(ctx *Ctx, err error) {
|
||||||
code := StatusInternalServerError
|
code := StatusInternalServerError
|
||||||
if e, ok := ctx.Error().(*Error); ok {
|
if e, ok := err.(*Error); ok {
|
||||||
code = e.Code
|
code = e.Code
|
||||||
}
|
}
|
||||||
ctx.Status(code).SendString(ctx.Error().Error())
|
ctx.Status(code).SendString(err.Error())
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -247,14 +247,14 @@ func New(settings ...*Settings) *App {
|
|||||||
getBytes = getBytesImmutable
|
getBytes = getBytesImmutable
|
||||||
getString = getStringImmutable
|
getString = getStringImmutable
|
||||||
}
|
}
|
||||||
// Set default error handler
|
// Set default error
|
||||||
if app.Settings.ErrorHandler == nil {
|
if app.Settings.ErrorHandler == nil {
|
||||||
app.Settings.ErrorHandler = func(ctx *Ctx) {
|
app.Settings.ErrorHandler = func(ctx *Ctx, err error) {
|
||||||
code := StatusInternalServerError
|
code := StatusInternalServerError
|
||||||
if e, ok := ctx.Error().(*Error); ok {
|
if e, ok := err.(*Error); ok {
|
||||||
code = e.Code
|
code = e.Code
|
||||||
}
|
}
|
||||||
ctx.Status(code).SendString(ctx.Error().Error())
|
ctx.Status(code).SendString(err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -558,7 +558,7 @@ func (app *App) init() *App {
|
|||||||
} else {
|
} else {
|
||||||
ctx.err = ErrBadRequest
|
ctx.err = ErrBadRequest
|
||||||
}
|
}
|
||||||
app.Settings.ErrorHandler(ctx) // ctx.Route() not available
|
app.Settings.ErrorHandler(ctx, ctx.err) // ctx.Route() not available
|
||||||
app.ReleaseCtx(ctx)
|
app.ReleaseCtx(ctx)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ func Test_App_ErrorHandler(t *testing.T) {
|
|||||||
|
|
||||||
func Test_App_ErrorHandler_Custom(t *testing.T) {
|
func Test_App_ErrorHandler_Custom(t *testing.T) {
|
||||||
app := New(&Settings{
|
app := New(&Settings{
|
||||||
ErrorHandler: func(ctx *Ctx) {
|
ErrorHandler: func(ctx *Ctx, err error) {
|
||||||
ctx.Status(200).SendString("Hi, I'm an custom error!")
|
ctx.Status(200).SendString("Hi, I'm an custom error!")
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
4
ctx.go
4
ctx.go
@ -597,7 +597,7 @@ func (ctx *Ctx) Next(err ...error) {
|
|||||||
if len(err) > 0 {
|
if len(err) > 0 {
|
||||||
ctx.Fasthttp.Response.Header.Reset()
|
ctx.Fasthttp.Response.Header.Reset()
|
||||||
ctx.err = err[0]
|
ctx.err = err[0]
|
||||||
ctx.app.Settings.ErrorHandler(ctx)
|
ctx.app.Settings.ErrorHandler(ctx, ctx.err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -838,7 +838,7 @@ func (ctx *Ctx) SendFile(file string, compress ...bool) {
|
|||||||
var err error
|
var err error
|
||||||
if file, err = filepath.Abs(file); err != nil {
|
if file, err = filepath.Abs(file); err != nil {
|
||||||
ctx.err = err
|
ctx.err = err
|
||||||
ctx.app.Settings.ErrorHandler(ctx)
|
ctx.app.Settings.ErrorHandler(ctx, ctx.err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if hasTrailingSlash {
|
if hasTrailingSlash {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user