当前位置:首页 >探索 >Go中“哨兵错误”说法的由来及使用建议 算是中说比较官方的

Go中“哨兵错误”说法的由来及使用建议 算是中说比较官方的

2024-05-16 07:52:03 [百科] 来源:避面尹邢网

Go中“哨兵错误”说法的哨兵错误由来及使用建议

作者:渔夫子 开发 前端 本文追溯了“哨兵错误”概念的提出来源,算是中说比较官方的。同时介绍了函数返回哨兵错误时需要包装后再返回。由及

大家好,使用我是建议渔夫子。

前些天有网友问我,哨兵错误在golang的中说错误处理中,“哨兵错误(sentinel error)”这个词的由及出处。之前我也只是使用在一些书籍和资料中见到过,也没深究。建议当这个网友问了我之后,哨兵错误就深入的中说翻了翻资料,在golang的由及官方博客中找到了这个词的提法,也算是使用比较官方的了吧。如下:https://go.dev/blog/go1.13-errors

Go中“哨兵错误”说法的由来及使用建议 算是中说比较官方的

图片图片

Go中“哨兵错误”说法的由来及使用建议 算是中说比较官方的

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

Go中“哨兵错误”说法的由来及使用建议 算是中说比较官方的

哨兵错误注意事项

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

图片图片

但是,这样会造成包和包之间的依赖。如果哨兵错误做了修改,那么之前依赖该错误的所有包都需要更改。

但在go1.13版本之后,增加了errors.Is方法。那么就建议,如果一个函数的返回值是哨兵错误,那么应该对该哨兵错误进行包装后再返回。同时,在调用方使用errors.Is函数来判断是否是某个具体的哨兵错误。如下:

图片图片

总结

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


责任编辑:武晓燕 来源: Go学堂 哨兵错误包装go

(责任编辑:时尚)

    推荐文章
    热点阅读