Every line of 'golang try catch' code snippets is scanned for vulnerabilities by our powerful machine learning engine that combs millions of open source libraries, ensuring your Go code is secure.
68 func try(fun func(), handler func(interface{})) { 69 defer func() { 70 if err := recover(); err != nil { 71 handler(err) 72 } 73 }() 74 fun() 75 }
37 func Try(fn func() Result, failure ...Result) Result { 38 var failed bool 39 var actionResponse Result 40 41 func() { 42 defer func() { 43 if rec := recover(); rec != nil { 44 failed = true 45 } 46 }() 47 actionResponse = fn() 48 }() 49 50 if failed { 51 if len(failure) > 0 { 52 return failure[0] 53 } 54 return defaultFailureResponse 55 } 56 57 return actionResponse 58 }
66 func (v *namespace) Catch(f HandlerFunc) Namespace { 67 v.catch = f 68 return v 69 }
71 func Catch(fns ...func(error)) { 72 if r := recover(); r != nil && len(fns) > 0 { 73 if err, match := r.(error); match { 74 for _, fn := range fns { 75 fn(err) 76 } 77 } else { 78 err := fmt.Errorf("%v", r) 79 for _, fn := range fns { 80 fn(err) 81 } 82 } 83 } 84 }