概述
- 通过恐慌报错的方式虽然直白有效,但动不动就崩溃显得有些暴力
- Go语言还给我们提供了一种相对温和但同样有效的异常解决方案,那就是同时返回结果和错误(error实例)
- 如果结果正确时错误为空,如果错误不为空时结果为空(或没有业务意义的默认值)
- 这种方式显得温和而辩证,兼容性好,也不会造成程序崩溃
- 至于究竟是严厉好还是温和兼容好,开发者们可以见仁见智
下面实例中的圆面积计算函数中:
- 如果调用者传入了一个负数半径,程序也不会panic,但是会返回一个提示错误的error实例,此时结果是毫无意义的默认值0
- 如果调用者传入了合法的半径,则返回正确结果和一个为空的error实例
package main
import (
"errors"
"fmt"
)
func main() {
//获得调用的结果
ret, err := getCircleAreaII