12345678910111213141516171819202122 |
- package handler
- import (
- "fmt"
- "net/http"
- "runtime/debug"
- "github.com/tal-tech/go-zero/rest/internal"
- )
- func RecoverHandler(next http.Handler) http.Handler {
- return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- defer func() {
- if result := recover(); result != nil {
- internal.Error(r, fmt.Sprintf("%v\n%s", result, debug.Stack()))
- w.WriteHeader(http.StatusInternalServerError)
- }
- }()
- next.ServeHTTP(w, r)
- })
- }
|