【go语言】error错误机制及自定义错误返回类型
2023-12-20 18:35:27
简介
Go 语言通过内置的 error
接口来处理错误,该接口定义如下:
type error interface {
Error() string
}
这意味着任何实现了 Error()
方法的类型都可以作为错误类型。在 Go 中,通常使用 errors
包的 New
函数来创建简单的错误:
package main
import (
"errors"
"fmt"
)
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Result:", result)
}
自定义错误类型
通过自定义两个错误变量,有利于判断错误类型
通常我们判断是否存在错误而不是判断不存在错误,有利于尽早失败避免嵌套
package main
import (
"errors"
"fmt"
)
var DivisionByZero = errors.New("除0错误")
var LessThanZero = errors.New("小于0错误")
func divide(a, b int) (int, error) {
if b == 0 {
return 0, DivisionByZero
}
if a < 0 {
return 0, LessThanZero
}
return a / b, nil
}
func main() {
result, err := divide(-1, 10)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Result:", result)
}
与其他语言不同点
- 没有异常机制
- error类型实现了error接口
源码分析看error类型:只需要实现Error方法就满足error接口的要求即为一个错误类
- 可以通过errors.New()快速创建错误实例
errors包内的一部分,定义了New函数和一个errorString错误类型,用于快速创建和表示简单的错误。
-
New
函数是一个工厂函数,用于创建一个新的错误。它接受一个字符串参数text
,该字符串表示错误的文本描述。每次调用New
都会返回一个新的错误对象,即使传递相同的文本描述,它们也是不同的错误对象。 -
errorString
类型:errorString
是一个简单的实现了error
接口的类型,它只有一个字符串字段s
表示错误的文本描述
文章来源:https://blog.csdn.net/Candy___i/article/details/135113778
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!