7.2. 第1节:error接口
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)
}
}