Files
workspace/code/go-project/base-farmework/pkg/middleware/recovery.go
T
2025-08-14 17:28:32 +08:00

25 lines
440 B
Go

package middleware
import (
"base-framework/pkg/router"
"base-framework/pkg/utils/response"
"log"
"runtime/debug"
)
func Recovery() router.HandlerFunc {
return func(c *router.Context) {
defer func() {
if err := recover(); err != nil {
// 打印 panic 信息和堆栈
log.Printf("[Recovery] panic recovered: %v\n%s", err, debug.Stack())
response.Error(c).Send()
}
}()
// 调用后续 handler
c.Next()
}
}