什么是网站外部链接建设,网站建设图片教程视频,重庆装修公司推荐,企业数字展厅error
Go语言内置错误接口类型#xff0c;任何类型只要是实现了Error()string方法#xff0c;都可以传递error接口类型变量。Go语言典型的错误处理方式是将error作为函数最后一个返回值。在调用函数时#xff0c;通过监测其返回的error值是否为nil来进行错误处理 Go语言标准…error
Go语言内置错误接口类型任何类型只要是实现了Error()string方法都可以传递error接口类型变量。Go语言典型的错误处理方式是将error作为函数最后一个返回值。在调用函数时通过监测其返回的error值是否为nil来进行错误处理 Go语言标准库提供的两个函数返回实现了error接口的具体类型实例一般的错误可以使用如下两个函数进行封装遇到复杂的错误用户也可以自定义错误类型只要实现error错误接口即可。
func Errorf(format string, a ...interface{}) error {return errors.New(fmt.Sprintf(format, a...))
}func New(text string) error {return *errorString{text}
}实际案例
import fmtfunc math(x, y int) (int, error) {if y 0 {return 0, fmt.Errorf(参数错误)}return x * y, nil
}func main() {// 一旦参数正确则执行相乘并且异常值为空值num1, err1 : math(1, 2)if err1 nil {fmt.Println(num1)}// 一旦参数错误则error返回错误信息_, err2 : math(1, 0)if err2 ! nil {fmt.Println(err2)}
}错误和异常
Go语言是一门类型安全的语言其运行时不会出现无法捕捉的错误也就是没有异常全是错误。 错误分两类
运行时错误此类错误在运行时或者编写时就能被发现或者捕获隐式或显式的抛出panic逻辑错误就是程序可以正常运行但是运行的结果是错误的。 第一种错误无法避免只能是尽量的recover住这些错误避免因为一个错误导致整个程序崩溃。
在实际的编程中error和panic的使用应该遵循如下三条原则
程序局部代码执行结果不符合预期这种行为不应该影响程序运行此类场景应该使用函数返回error错误类型进行处理。程序运行时出现错误Go语言会自动调用panic输出堆栈信息去定位错误这个需要使用recover去捕获该类异常。程序局部代码执行结果不符合预期并且后续此结果对程序运行有重大影响则需要手动调用panic去抛出异常终止程序运行。