面试题答案
一键面试package main
import (
"fmt"
)
func divide(a, b int) (int, error) {
var result int
defer func() {
if r := recover(); r != nil {
result = 0
err, ok := r.(error)
if!ok {
err = fmt.Errorf("unknown error: %v", r)
}
fmt.Println("捕获到错误:", err)
}
}()
if b == 0 {
panic(fmt.Errorf("division by zero"))
}
result = a / b
return result, nil
}
你可以这样调用这个函数:
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("错误:", err)
} else {
fmt.Println("结果:", result)
}
}