当前位置: 首页 > news >正文

建设网站查询余额跳转中

建设网站查询余额,跳转中,做期货都看那些网站,网站建设和网站优化哪个更重要Go语言基础之Error接口1.Error 接口2.创建错误3.fmt.Errorf1.Error 接口 Go 语言中把错误当成一种特殊的值来处理,不支持其他语言中使用try/catch捕获异常的方式 Go 语言中使用一个名为 error 接口来表示错误类型 type error interface {Error() string }error 接…

Go语言基础之Error接口

  • 1.Error 接口
  • 2.创建错误
  • 3.fmt.Errorf

1.Error 接口

Go 语言中把错误当成一种特殊的值来处理,不支持其他语言中使用try/catch捕获异常的方式

Go 语言中使用一个名为 error 接口来表示错误类型

type error interface {Error() string
}

error 接口只包含一个方法——Error,这个函数需要返回一个描述错误信息的字符串。

当一个函数或方法需要返回错误时,我们通常是把错误作为最后一个返回值。例如下面标准库 os 中打开文件的函数。

func Open(name string) (*File, error) {return OpenFile(name, O_RDONLY, 0)
}

由于 error 是一个接口类型,默认零值为nil。所以我们通常将调用函数返回的错误与nil进行比较,以此来判断函数是否返回错误。例如你会经常看到类似下面的错误判断代码

file, err := os.Open("./xx.go")
if err != nil {fmt.Println("打开文件失败,err:", err)return
}

2.创建错误

我们可以根据需求自定义 error,最简单的方式是使用errors 包提供的New函数创建一个错误

我们可以在函数返回时快速创建一个错误:

package mainimport ("errors""fmt"
)func queryById(id int64) (string, error) {if id <= 0 {return "", errors.New("无效的id")}return "可以了", nil
}func main() {s, err := queryById(12)fmt.Println(s, err) // 可以了 <nil>s, err = queryById(-2)fmt.Println(s, err)  //  无效的id
}

或者用来定义一个错误变量,例如标准库io.EOF错误定义如下

var EOF = errors.New("EOF")

3.fmt.Errorf

当我们需要传入格式化的错误描述信息时,使用fmt.Errorf是个更好的选择

fmt.Errorf("查询数据库失败,err:%v", err)

但是上面的方式会丢失原有的错误类型,只拿到错误描述的文本信息。

为了不丢失函数调用的错误链,使用fmt.Errorf时搭配使用特殊的格式化动词%w,可以实现基于已有的错误再包装得到一个新的错误。

fmt.Errorf("查询数据库失败,err:%w", err)
http://www.yayakq.cn/news/364499/

相关文章:

  • 深圳微商城网站设计公司保定建站价格
  • 甘肃建设项目公示网站巩义旅游网站设计公司
  • 江都建设招标网站平面设计好找工作不
  • 网页制作与网站建设答案温州市微网站制作电话
  • 祝桥建设网站2021年国内国际时事
  • 玉环住房与城乡建设规划局网站网站建设公司浙江
  • 铜仁市网站建设情况免费制作网页
  • 买了虚拟主机怎么建设网站建站系统运营
  • 如何给网站做右侧悬浮电话金华网站建设开发
  • wordpress发布文章 更新失败镇江关键词优化如何
  • 哪家公司做移动网站网站建设的域名
  • 网站开发实践教程百度账户推广登陆
  • 巫山集团网站建设重庆网站空间
  • 深圳华丰大厦网站建设老域名
  • 苏州有哪些做网站公司好做动漫网站
  • 专做户外装备测评视频网站珠海网站建设制作哪家专业
  • 济南易搜的网站建设学校网站建设报告
  • 网站引擎友好性分析网站幻灯片 字段
  • 兰州市城乡建设局网站官网全球互联网中心在哪里
  • 中国交通建设监理协网站网站寄生虫怎么做
  • 商城网站建设多少钱wordpress 防伪系统
  • 东莞企业网站公司爱站网长尾关键词挖掘
  • 沈阳有什么服务网站wordpress怎么移动文章分类
  • 凡科可以做游戏网站吗网站开发淄博
  • 营销网站功能教育课程网站建设
  • 无锡专业网站推广自助建网站系统源码
  • 做a视频网站杭州萧山区抖音seo排行榜
  • 电商网站建设济南建网站高校门户网站源码
  • 上海 国际网站设计平台网站应该怎样做seo
  • 铁岭做网站软装潢.企业网站建设