package main
import (
"fmt"
)
func main() {
fmt.Println("Before")
fmt.Println()
dividend := 16
divisors := []int{8, 4, 0, 2}
for _, divisor := range divisors {
mydiv(dividend, divisor)
}
fmt.Println()
fmt.Println("After")
}
func mydiv(a, b int) {
defer func() {
if err := recover(); err != nil {
fmt.Printf("Error: %v\n", err)
//log.Print("Error: ", err)
//panic(err)
}
}()
externalDiv(a, b)
}
func externalDiv(a, b int) {
//fmt.Println("Start")
res := a / b
fmt.Printf("%v / %v = %v\n", a, b, res)
//fmt.Println("End")
}
Before
16 / 8 = 2
16 / 4 = 4
Error: runtime error: integer divide by zero
16 / 2 = 8
After