recover.go 405 B

123456789101112131415161718192021222324252627
  1. package main
  2. import (
  3. "fmt"
  4. )
  5. func deferTest() {
  6. defer func() {
  7. if err := recover(); err != nil {
  8. fmt.Println("panic happend FIRST:", err)
  9. }
  10. }()
  11. defer func() {
  12. if err := recover(); err != nil {
  13. fmt.Println("panic happend SECOND:", err)
  14. // panic("second panic")
  15. }
  16. }()
  17. fmt.Println("Some userful work")
  18. panic("something bad happend")
  19. return
  20. }
  21. func main() {
  22. deferTest()
  23. return
  24. }