in v2/processor.go [267:283]
func NewPanicHandler(panicOptions *PanicHandlerOptions, handler Handler) HandlerFunc {
if panicOptions == nil {
panicOptions = &PanicHandlerOptions{
OnPanicRecovered: func(ctx context.Context, settler MessageSettler, message *azservicebus.ReceivedMessage, recovered any) {
getLogger(ctx).Error(fmt.Sprintf("panic recovered: %v", recovered))
},
}
}
return func(ctx context.Context, settler MessageSettler, message *azservicebus.ReceivedMessage) {
defer func() {
if rec := recover(); rec != nil {
panicOptions.OnPanicRecovered(ctx, settler, message, rec)
}
}()
handler.Handle(ctx, settler, message)
}
}