π In Go, a panic can occur due to unexpected runtime errors. When this happens, the program immediately stops execution.
π Go provides a built-in function, recover(), that allows you to gracefully handle panics and ensure cleanup tasks are properly executed. π οΈ
Sample Code
package main
import "fmt"
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered from panic:", r)
}
}()
fmt.Println("Program started")
panic("Something went wrong!")
fmt.Println("This will not be executed")
}
Output
Program started
Recovered from panic: Something went wrong!
π¨ Important Notes
β
recover() only works inside a deferred function
β
If recover() is not called, the program will crash
β
Use recover() for exceptional, unexpected situations or critical cleanup and at the highest level possible (like worker process/ main function)
β
Abuse recover() can hide real bugs and make debugging harder! β οΈβ οΈ
Follow me to stay updated with my future posts:
Top comments (0)