Commit 495033b9 authored by astaxie's avatar astaxie

fix #366

parent 9c164408
...@@ -368,16 +368,31 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request) ...@@ -368,16 +368,31 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
if err := recover(); err != nil { if err := recover(); err != nil {
if _, ok := err.(middleware.HTTPException); ok { if _, ok := err.(middleware.HTTPException); ok {
// catch intented errors, only for HTTP 4XX and 5XX // catch intented errors, only for HTTP 4XX and 5XX
} else {
if RunMode == "dev" {
if !RecoverPanic {
panic(err)
} else {
var stack string
Critical("Handler crashed with error", err)
for i := 1; ; i++ {
_, file, line, ok := runtime.Caller(i)
if !ok {
break
}
Critical(file, line)
stack = stack + fmt.Sprintln(file, line)
}
middleware.ShowErr(err, rw, r, stack)
}
} else { } else {
if ErrorsShow { if ErrorsShow {
handler := p.getErrorHandler(fmt.Sprint(err)) handler := p.getErrorHandler(fmt.Sprint(err))
handler(rw, r) handler(rw, r)
} else { } else {
if !RecoverPanic { if !RecoverPanic {
// go back to panic
panic(err) panic(err)
} else { } else {
var stack string
Critical("Handler crashed with error", err) Critical("Handler crashed with error", err)
for i := 1; ; i++ { for i := 1; ; i++ {
_, file, line, ok := runtime.Caller(i) _, file, line, ok := runtime.Caller(i)
...@@ -385,15 +400,11 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request) ...@@ -385,15 +400,11 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
break break
} }
Critical(file, line) Critical(file, line)
if RunMode == "dev" {
stack = stack + fmt.Sprintln(file, line)
}
} }
if RunMode == "dev" {
middleware.ShowErr(err, rw, r, stack)
} }
} }
} }
} }
} }
}() }()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment