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

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

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

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

哨兵错误注意事项

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

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

总结

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

相关文章:

  • Docker compose容器编排
  • Python 自动化(十六)静态文件处理
  • 在跑腿App系统开发中,如何构建系统架构?
  • 循环神经网络 - RNN
  • MySQL数据库入门到精通——运维篇(1)
  • 图像处理:图片二值化学习,以及代码中如何实现
  • 【实现多个接口的使用】
  • 软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)
  • QMS质量检验管理|攻克制造企业质量检验难题,助力企业提质增效
  • web - 会话技术
  • Android照搬,可删
  • 玻色量子签约移动云“五岳”量子云计算创新加速计划!
  • 使用 ElementUI 组件构建 Window 桌面应用探索与实践(WinForm)
  • 微服务parent工程和子工程pom文件配置注意
  • 线扫相机DALSA-相机平场矫正详细步骤
  • 2019年如何成为全栈工程师?
  • Babel配置的不完全指南
  • CSS实用技巧
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • javascript 总结(常用工具类的封装)
  • nodejs调试方法
  • Spring Cloud Feign的两种使用姿势
  • Twitter赢在开放,三年创造奇迹
  • 阿里云购买磁盘后挂载
  • 订阅Forge Viewer所有的事件
  • 后端_MYSQL
  • 如何选择开源的机器学习框架?
  • 微信小程序填坑清单
  • 《码出高效》学习笔记与书中错误记录
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #Java第九次作业--输入输出流和文件操作
  • (10)STL算法之搜索(二) 二分查找
  • (arch)linux 转换文件编码格式
  • (bean配置类的注解开发)学习Spring的第十三天
  • (pojstep1.1.2)2654(直叙式模拟)
  • (二)换源+apt-get基础配置+搜狗拼音
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net framework4与其client profile版本的区别
  • .Net MVC + EF搭建学生管理系统
  • .NET 读取 JSON格式的数据
  • .Net 高效开发之不可错过的实用工具
  • :中兴通讯为何成功
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • @在php中起什么作用?
  • [ C++ ] STL---stack与queue
  • [ solr入门 ] - 利用solrJ进行检索
  • [AutoSAR系列] 1.3 AutoSar 架构
  • [C++]打开新世界的大门之C++入门