Go语言错误处理全解析
1. 错误与异常的区别
在Go语言里,函数不会返回异常,我们无法预先知晓是否会有异常返回,以及返回的异常类型。异常仅在出现问题时抛出,需要借助 try 和 catch 来捕获。而错误则是函数有意返回,供调用函数检查并单独处理。
熟悉异常处理的程序员可能会觉得Go语言的错误处理方式很繁琐。在Go里,不能像使用异常那样用一个“大网”捕获一系列语句的异常,而是要每次检查返回的错误并单独处理。不过,也可以选择忽略错误,但从编程规范来讲,应该认真对待每个错误。只有在完全不在乎返回结果时,才可以忽略错误。
2. 处理错误
2.1 编写函数时返回错误
在编写函数时,如果函数可能会失败,就需要返回一个错误,同时返回函数的正常返回值(如果有的话)。Go语言使用内置的 error 接口类型来表示错误,并且允许函数有多个返回值,按照惯例,错误通常作为最后一个返回值。
以下是一个猜数字的函数示例:
func guess(number uint) (answer bool, err error) {
if number > 99 {
err = errors.New("Number is larger than 100")
}
// check if guess is correct
return answer, err
}
创建新错误有多种方式,常用的有
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



