17.error接口
2023年1月6日约 275 字小于 1 分钟
17.error接口
1,概述
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类型值的方法是调用fmt包中的Errorf函数:
package fmt
import "errors"
func Errorf(format string, args ...interface{}) error {
return errors.New(Sprintf(format, args...))
}
2,error接口的使用
1,简单示例
package main
import "fmt"
import "errors"
func main() {
//先使用fmt包内的错误方法
//var err1 error = fmt.Errorf("s%","this is normal err1") 等价于下边的
err1 := fmt.Errorf("%s", "this is normal err1")
fmt.Println("err1 = ", err1)
//或者直接使用error包
err2 := errors.New("this is normal err2")
fmt.Println("err2 = ", err2)
}
2,如何应用
package main
import "fmt"
import "errors"
func MyDiv(a, b int) (result int, err error) {
err = nil
if b == 0 {
err = errors.New("分母不能为0")
} else {
result = a / b
}
return
}
func main() {
result, err := MyDiv(10, 0)
if err != nil {
fmt.Println("err = ", err)
} else {
fmt.Println("result = ", result)
}
}
Powered by Waline v2.9.1