We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9462ea8 commit ac4e3d6Copy full SHA for ac4e3d6
primitive/base.go
@@ -85,14 +85,22 @@ func verifyIP(ip string) error {
85
return nil
86
}
87
88
-var PanicHandler func(interface{})
+type PanicHandler func(interface{})
89
90
-func WithRecover(fn func()) {
+func DefaultPanicHandler(interface{}) {
91
+ return
92
+}
93
+
94
+func WithRecover(fn func(), handlers ...PanicHandler) {
95
defer func() {
- handler := PanicHandler
- if handler != nil {
- if err := recover(); err != nil {
- handler(err)
96
+ if len(handlers) == 0 {
97
+ handlers = append(handlers, DefaultPanicHandler)
98
+ }
99
+ for _, handler := range handlers {
100
+ if handler != nil {
101
+ if err := recover(); err != nil {
102
+ handler(err)
103
104
105
106
}()
0 commit comments