func (r recovery) Serve(ctx *iris.Context) { defer func() { if err := recover(); err != nil { r.out.Write([]byte("[" + time.Now().String() + "]Recovery from panic \n")) //ctx.Panic just sends http status 500 by default, but you can change it by: iris.OnPanic(func( c *iris.Context){}) ctx.Panic() } }() ctx.Next() }