mirror of
https://github.com/astaxie/beego.git
synced 2024-11-22 12:00:55 +00:00
error map refactor
This commit is contained in:
parent
cce8d1e934
commit
bb776cc4cb
35
error.go
35
error.go
@ -204,11 +204,7 @@ type errorInfo struct {
|
||||
}
|
||||
|
||||
// map of http handlers for each error string.
|
||||
var ErrorMaps map[string]*errorInfo
|
||||
|
||||
func init() {
|
||||
ErrorMaps = make(map[string]*errorInfo)
|
||||
}
|
||||
var ErrorMaps map[string]*errorInfo = make(map[string]*errorInfo, 10)
|
||||
|
||||
// show 401 unauthorized error.
|
||||
func unauthorized(rw http.ResponseWriter, r *http.Request) {
|
||||
@ -392,22 +388,21 @@ func ErrorController(c ControllerInterface) *App {
|
||||
}
|
||||
|
||||
// show error string as simple text message.
|
||||
// if error string is empty, show 500 error as default.
|
||||
func exception(errcode string, ctx *context.Context) {
|
||||
code, err := strconv.Atoi(errcode)
|
||||
if err != nil {
|
||||
code = 503
|
||||
}
|
||||
if h, ok := ErrorMaps[errcode]; ok {
|
||||
executeError(h, ctx, code)
|
||||
return
|
||||
} else if h, ok := ErrorMaps["503"]; ok {
|
||||
executeError(h, ctx, code)
|
||||
return
|
||||
} else {
|
||||
ctx.ResponseWriter.WriteHeader(code)
|
||||
ctx.WriteString(errcode)
|
||||
// if error string is empty, show 503 or 500 error as default.
|
||||
func exception(errCode string, ctx *context.Context) {
|
||||
for ec, _ := range []string{errCode, "503", "500"} {
|
||||
code, _ := strconv.Atoi(errCode)
|
||||
if code == 0 {
|
||||
code = 503
|
||||
}
|
||||
if h, ok := ErrorMaps[ec]; ok {
|
||||
executeError(h, ctx, code)
|
||||
return
|
||||
}
|
||||
}
|
||||
//if 50x error has been removed from errorMap
|
||||
ctx.ResponseWriter.WriteHeader(503)
|
||||
ctx.WriteString(errCode)
|
||||
}
|
||||
|
||||
func executeError(err *errorInfo, ctx *context.Context, code int) {
|
||||
|
Loading…
Reference in New Issue
Block a user