1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-25 18:10:55 +00:00

refactor of error response and fix err code bug

This commit is contained in:
JessonChan 2016-03-17 09:46:34 +08:00
parent 443d71397c
commit 0859ec570c
3 changed files with 24 additions and 21 deletions

View File

@ -261,12 +261,13 @@ func (c *Controller) Abort(code string) {
// CustomAbort stops controller handler and show the error data, it's similar Aborts, but support status code and body.
func (c *Controller) CustomAbort(status int, body string) {
c.Ctx.Output.Status = status
// first panic from ErrorMaps, is is user defined error functions.
if _, ok := ErrorMaps[body]; ok {
c.Ctx.Output.Status = status
panic(body)
}
// last panic user string
c.Ctx.ResponseWriter.WriteHeader(status)
c.Ctx.ResponseWriter.Write([]byte(body))
panic(ErrAbort)
}

View File

@ -388,8 +388,11 @@ func exception(errCode string, ctx *context.Context) {
if err == nil {
return v
}
if ctx.Output.Status == 0 {
return 503
}
return ctx.Output.Status
}
for _, ec := range []string{errCode, "503", "500"} {
if h, ok := ErrorMaps[ec]; ok {

View File

@ -844,7 +844,7 @@ func (p *ControllerRegister) recoverPanic(context *beecontext.Context) {
}
if !BConfig.RecoverPanic {
panic(err)
} else {
}
if BConfig.EnableErrorsShow {
if _, ok := ErrorMaps[fmt.Sprint(err)]; ok {
exception(fmt.Sprint(err), context)
@ -867,7 +867,6 @@ func (p *ControllerRegister) recoverPanic(context *beecontext.Context) {
}
}
}
}
func toURL(params map[string]string) string {
if len(params) == 0 {