7.2. 第1节:error接口

未匹配的标注
本文档最新版为 2023,旧版本可能放弃维护,推荐阅读最新版!

error接口

Go语言引入了一个关于错误处理的标准模式,即error接口,它是Go语言内建的接口类型,该接口的定义如下:

type error interface {
    Error() string
}

Go语言的标准库代码包errors为用户提供如下方法:

package errors

type errorString struct {
    text string
}

func New(text string) error{
    return &errorString {text}
}
func (e *errorString) Error() string {
    return e.text
}

通过以上代码,可以发现error接口的使用是非常简单的(error是一个接口,该接口只声明了一个方法Error(),返回值是string类型,用以描述错误

)。下面看一下基本使用,

首先导包:
import "errors"
然后调用其对应的方法:

err := errors.New("这是正常的err")
fmt.Println("err=",err.Error())

当然fmt包中也封装了一个专门输出错误信息的方法,如下所示:

err1 := fmt.Errorf("%s","这是正常的err")
fmt.Println("err=",err1)

这就是error的基本语法。

例子:

package main

import (
    "fmt"
    "errors"
)

func dive(a int, b int) (value int, err error) {
    if b == 0 {
        err = errors.New("除数不能为0")
        return
    }
    value = a / b
    return
}
func main() {

    a := 10
    b := 5
    value, err := dive(a, b)

    if err != nil {
        fmt.Println("runtime error:",err)
    } else {
        fmt.Println(value)

    }

}

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
wangchunbo
讨论数量: 0
发起讨论 查看所有版本


暂无话题~