对Go异常处理有一些疑惑,比如我有一个divide的方法:
```go
func divide(a int, b int) float32 {
defer func() {
if err := recover(); err != nil { //此处recover了,所以可以继续往执行
fmt.Println(err)
}
}()
return float32(a / b)
}
func main() {
var a int = 10
var b int = 0
fmt.Println(divide(a, b)) //打印出0
}
```
异常可以处理掉,但是返回的0就非常疑惑了,因为调用方不知道是发生了异常,还是结果是0。 比如:
1. divide(10, 0) = 0
2. divide(0, 10) = 0
如果谁知道,希望不惜赐教!!
谢谢
有疑问加站长微信联系(非本文作者)