recover_divbyzero.go 456 B

1234567891011121314151617181920212223242526272829303132333435
  1. // recover_divbyzero.go
  2. package main
  3. import (
  4. "fmt"
  5. )
  6. func badCall() {
  7. a, b := 10, 0
  8. n := a / b
  9. fmt.Println(n)
  10. }
  11. func test() {
  12. defer func() {
  13. if e := recover(); e != nil {
  14. fmt.Printf("Panicing %s\r\n", e)
  15. }
  16. }()
  17. badCall()
  18. fmt.Printf("After bad call\r\n")
  19. }
  20. func main() {
  21. fmt.Printf("Calling test\r\n")
  22. test()
  23. fmt.Printf("Test completed\r\n")
  24. }
  25. /* Output:
  26. Calling test
  27. Panicing runtime error: integer divide by zero
  28. Test completed
  29. */