Go - Defer / Panic / Recover
          Beginner 10/10
          Teacher 10/10
          Architect 10/10
        
        
        
        
Try it: Open a file and 
defer its Close(); deliberately trigger an error and ensure the file is closed.defer
f, _ := os.Open("file")
defer f.Close()
panic/recover
func safe(){
  defer func(){ if r := recover(); r != nil { fmt.Println("recovered", r) } }()
  panic("boom")
}
Prefer explicit errors over panic except for programmer bugs (e.g., impossible states).
Common errors
- Using panicfor expected errors—prefer returningerror.
Practice
- Wrap a function with recoverand log the panic safely.
Quick quiz
- When is panicappropriate?