Error Recovery Example

Demonstrates panic recovery and error handling in middleware.

Running

go run main.go

Server starts on http://localhost:3003

Patterns

Recovery Middleware

func RecoveryMiddleware(c *request.Context) error {
    defer func() {
        if r := recover(); r != nil {
            log.Printf("PANIC: %v", r)
        }
    }()
    return c.Next()
}

Error Logging

func ErrorLoggingMiddleware(c *request.Context) error {
    err := c.Next()
    if err != nil {
        log.Printf("ERROR: %v", err)
    }
    return err
}