Skip to content

Commit 314225f

Browse files
committed
Merge branch 'master' of github.com:sofyan48/pubsub-router
2 parents d6cbc24 + c10b58a commit 314225f

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

router.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package pubsubrouter
22

33
import (
4+
"runtime/debug"
45
"sync"
56

7+
"github.com/google/martian/log"
68
"github.com/sofyan48/pubsub-router/pkg/client"
79
)
810

@@ -28,10 +30,19 @@ func (r *Router) Handle(routes string, h Handler) *Router {
2830

2931
func (r *Router) HandleMessage(m *Message) error {
3032
path := m.Payload.Attributes[client.MessageAttributeNameRoute]
33+
defer func() {
34+
if err := recover(); err != nil {
35+
log.Errorf("panic recovered: %v | stack : %v", err, string(debug.Stack()))
36+
}
37+
}()
3138
h, okRoute := r.handlers[path]
3239
if okRoute {
40+
err := h.HandleMessage(m)
41+
if err != nil {
42+
m.Payload.Nack()
43+
return err
44+
}
3345
m.Payload.Ack()
34-
return h.HandleMessage(m)
3546
}
3647
// if you need reporting please contrib this error handling
3748
// return errors.New("Route Not Any Match")

0 commit comments

Comments
 (0)