4、Go语言错误处理全解析

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
}

创建新错误有多种方式,常用的有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值