AI智能
改变未来

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)
}
}

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » go语言错误类型