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

go中“哨兵错误”的由来及使用建议

“哨兵错误(sentinel error)”这个词的出处。之前我也只是在一些书籍和资料中见到过,也没深究。当这个网友问了我之后,就深入的翻了翻资料,在golang的官方博客中找到了这个词的提法,也算是比较官方的了吧。如下:go.dev/blog/go1.13…
在这里插入图片描述

因为在golang中错误也被当做值来处理的。所以是叫做错误的哨兵值,也就是大家常看到的哨兵错误。

哨兵错误注意事项

在go的官方博客中也提到,哨兵错误是包级别的,可以用于在包外进行错误值的判断。如下:
在这里插入图片描述

但是,这样会造成包和包之间的依赖。如果哨兵错误做了修改,那么之前依赖该错误的所有包都需要更改。
但在go1.13版本之后,增加了errors.Is方法。那么就建议,如果一个函数的返回值是哨兵错误,那么应该对该哨兵错误进行包装后再返回。同时,在调用方使用errors.Is函数来判断是否是某个具体的哨兵错误。如下:
在这里插入图片描述

总结

本文追溯了“哨兵错误”概念的提出来源,算是比较官方的。同时介绍了函数返回哨兵错误时需要包装后再返回。

http://www.lryc.cn/news/212683.html

相关文章:

  • 【Python百练——第2练】使用Python做一个猜数字小游戏
  • Power BI 傻瓜入门 18. 让您的数据熠熠生辉
  • 什么是车规级芯片?一起探讨车规级芯片NCV8705MTADJTCG LDO线性稳压器 工作原理、特性参数
  • Stream流基础使用
  • 防数据泄密的解决方案
  • 禁用swagger
  • Mysql数据库中的用户管理与授权
  • wireshark捕获DNS
  • Linux学习-kubernetes之Ingress
  • diamond大基因序列快速比对工具使用详解-包含超算集群多节点计算使用方法
  • 最新ai系统ChatGPT商业运营版网站源码+支持GPT4.0/支持AI绘画+已支持OpenAI GPT全模型+国内AI全模型+绘画池系统
  • ffmpeg x264 x265 fdk-aac 编译记录
  • K8s集群
  • 生产级 React 框架介绍
  • 如何理解 Spring Boot 中的 Starter?
  • vue-query的使用
  • git本地搭建服务器[Vmware虚拟机访问window的git服务器]
  • 【Python】基础练习题
  • 语雀故障与反思,顺便再领半年会员!
  • PYTHON利用SQLAlchemy库高效操作关联的数据表
  • TypeScript中的类型工具
  • File --JAVA
  • 比较Excel中的两列目录编号是否一致
  • pgsql 创建自增ID , 指定自增ID起始值
  • 数据安全的重要性:如何解密[thekeyishere@cock.li].Elbie勒索病毒
  • 图像识别在自动驾驶汽车中的决策规划与控制策略研究。
  • Spring MVC 的责任链模式
  • 提升用户体验的关键步骤
  • 本地模拟,服务器下载文件
  • 如何防止Shopee账户关联