diff --git a/main.go b/main.go index 0e6aa14..5121aa9 100644 --- a/main.go +++ b/main.go @@ -20,7 +20,8 @@ package main // import "git.sangeeth.dev/gobyexample/statefulgoroutines" // import "git.sangeeth.dev/gobyexample/sorting" // import "git.sangeeth.dev/gobyexample/panic" -import "git.sangeeth.dev/gobyexample/defers" +// import "git.sangeeth.dev/gobyexample/defers" +import "git.sangeeth.dev/gobyexample/recovering" func main() { // runes.Runes() @@ -43,5 +44,6 @@ func main() { // statefulgoroutines.StatefulGoroutines() // sorting.Sorting() // panic.Panic() - defers.Defers() + // defers.Defers() + recovering.Recover() } diff --git a/recovering/recovering.go b/recovering/recovering.go new file mode 100644 index 0000000..131bbc9 --- /dev/null +++ b/recovering/recovering.go @@ -0,0 +1,19 @@ +package recovering + +import "fmt" + +func Recover() { + defer func() { + if r := recover(); r != nil { + fmt.Printf("Whew. Recovered from panic %v\n", r) + } + }() + + doPanic() + + fmt.Printf("I'll never execute >...<") +} + +func doPanic() { + panic("aaaaaaaaaaahhhhhhhhhh sjdnsjdnsdjnsd") +}