go语言错误类型

1.考虑的error的使用原因
error类型本身就是一个预定义好的接口,里面定义了一个method
type error interface {
Error() string//定义一个error()的方法
}
2如何完成error的第一个简单的调用,输出的格式err:=fmt.Errorf("%s",“error:this is error”)
func main() {
//方法一:
//采用errors包的New方法 返回一个err的类型
var err error = errors.New(“this is a new error”)
//由于已经实现了error接口的方法 因此可以直接调用对应的方法
fmt.Println(err.Error())

//方法二:
//采用fmt.Errof 将string信息转化为error信息 并返回
err = fmt.Errorf("%s", "the error test for fmt.Errorf")
fmt.Println(err.Error())
//方法三:json串的方式
//采用自定义的方式实现一个error的 一个duck 类型
err = &Customerror{
	infoa: "err info a",
	infob: "err info b",
	Err:   errors.New("test custom err"),
}

fmt.Println(err.Error())

}

package main

import (
“errors”
“fmt”
)

func main() {
err:=fmt.Errorf("%s",“error:this is error”)
fmt.Println(“err=”,err)
err2:=errors.New(“this is norrow error”)
fmt.Println(“err2”,err2)
}
2.error在做返回值时候的使用方式,定义一个函数方法的同时,
3.整个思路:func xxx( byte)(XX byte,err error){
进行if的条件判断{
Fmt.errorf(xxxx)
}else{
xxxx
}
做返回值return
}
主函数的使用
Func main(){
返回值1,返回值(err):=返回的函数实参传递
判断err是否为空
并格式化输出
打印返回的参数值
package main

import “fmt”

func MyFunc(a,b int)(result int,err error){
if b==0{
fmt.Errorf(“err=”,“分母不可以为0”)
}else {
result=a/b
}
return
}

func main() {
//MyFunc(10,0)
result, err := MyFunc(10, 0)
if err != nil {
fmt.Printf("%+v\n", err)
} else {
fmt.Println(“result=”, result)
}
}

猜你喜欢

转载自blog.csdn.net/C540743204/article/details/107300558