package middleware import ( "base-framework/pkg/reponse" "base-framework/pkg/router" "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()) reponse.Error(c).Send() } }() // 调用后续 handler c.Next() } }