linter err113:不定义动态错误,而是使用包装的静态错误

克兰

我使用err113的的一部分golangci-lint

它在抱怨...

foo_test.go:55:61: err113: do not define dynamic errors, use wrapped static errors instead: "errors.New(\"repo gave err\")" (goerr113)
        repoMock.EXPECT().Save(gomock.Eq(&foooBarBar)).Return(nil, errors.New("repo gave err")),
                                                                  ^

foo_test.go:22:42: err113: do not define dynamic errors, use wrapped static errors instead: "errors.New(\"oops\")" (goerr113)
    repoMock.EXPECT().FindAll().Return(nil, errors.New("oops"))
                                            ^

解决此问题的最佳方法是什么?

引用https://github.com/Djarvur/go-err113

同样,报告任何error.New()和fmt.Errorf()方法的调用,但用于初始化程序包级变量的调用和包装其他错误的fmt.Errorf()调用除外。

我正在为此举一个惯用的例子。

w

根据建议声明包级变量:

 var repoGaveErr = errors.New("repo gave err")

 func someFunc() {
    repoMock.EXPECT().Save(gomock.Eq(&foooBarBar)).Return(nil, repoGaveErr)
 }

每次调用error.New都会分配一个新的唯一错误值。应用程序通过声明包级变量来创建表示错误的单个值。

单一价值有两个动机:

  • 应用程序可以比较相等性的值以检查特定的错误情况。

  • 减少内存分配(尽管实际上可能没什么大不了的)

io.EOF是一个典型示例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解释TypeScript Linter错误

来自分类Dev

错误消息“未安装 Linter pylint”

来自分类Dev

Linter或用户错误:通过useEffect设置状态导致循环

来自分类Dev

Python 3:访问父级属性,Linter错误

来自分类Dev

为什么 linter 会出现“未提供‘thisArg’的参数”的错误?

来自分类Dev

如何配置VIM Ale以使用Tidy linter for HTML?

来自分类Dev

使用闭包编译器 linter 抑制个别警告

来自分类Dev

ST3中的linter“行过长”错误和多行字符串内的空白过多

来自分类Dev

Linter表示多余的lambda,但按建议更换时会产生不同的错误

来自分类Dev

用chai摆脱没有多余的表达式的linter错误的好方法

来自分类Dev

VSCode的Python linter认为从文件夹中另一个文件的导入是错误的

来自分类Dev

如果Linter在每一行都抛出错误,该如何工作?

来自分类Dev

尝试制作 polyfill 时打字稿 linter 触发错误

来自分类Dev

Polymer.Dart linter会警告Angular.Dart使用的ng-view标签

来自分类Dev

将代码拆分到多个文件中时,如何使用Atom的linter-jshint?

来自分类常见问题

未安装Linter pylint

来自分类Dev

无法让Atom Linter工作

来自分类Dev

拉请求“ linter”

来自分类Dev

如何使C#Arcanist Linter正常工作?

来自分类Dev

py linter是否执行文件检查?

来自分类Dev

在lintr中禁用`object_name_linter`

来自分类Dev

如何使C#Arcanist Linter正常工作?

来自分类Dev

sublime text 3中cppcheck linter的配置

来自分类Dev

如何为 React Native 配置 Linter?

来自分类Dev

如何忽略Sublime Linter SCSS(Sass)中的特定规则?

来自分类Dev

在Atom中禁用特定的linter规则(对于js-standard)

来自分类Dev

Phabricator linter找不到任何可定位路径

来自分类Dev

这可能> Sublime3 + python linter + virtualenv吗?

来自分类Dev

CSS-Linter与美化器不一致

Related 相关文章

  1. 1

    解释TypeScript Linter错误

  2. 2

    错误消息“未安装 Linter pylint”

  3. 3

    Linter或用户错误:通过useEffect设置状态导致循环

  4. 4

    Python 3:访问父级属性,Linter错误

  5. 5

    为什么 linter 会出现“未提供‘thisArg’的参数”的错误?

  6. 6

    如何配置VIM Ale以使用Tidy linter for HTML?

  7. 7

    使用闭包编译器 linter 抑制个别警告

  8. 8

    ST3中的linter“行过长”错误和多行字符串内的空白过多

  9. 9

    Linter表示多余的lambda,但按建议更换时会产生不同的错误

  10. 10

    用chai摆脱没有多余的表达式的linter错误的好方法

  11. 11

    VSCode的Python linter认为从文件夹中另一个文件的导入是错误的

  12. 12

    如果Linter在每一行都抛出错误,该如何工作?

  13. 13

    尝试制作 polyfill 时打字稿 linter 触发错误

  14. 14

    Polymer.Dart linter会警告Angular.Dart使用的ng-view标签

  15. 15

    将代码拆分到多个文件中时,如何使用Atom的linter-jshint?

  16. 16

    未安装Linter pylint

  17. 17

    无法让Atom Linter工作

  18. 18

    拉请求“ linter”

  19. 19

    如何使C#Arcanist Linter正常工作?

  20. 20

    py linter是否执行文件检查?

  21. 21

    在lintr中禁用`object_name_linter`

  22. 22

    如何使C#Arcanist Linter正常工作?

  23. 23

    sublime text 3中cppcheck linter的配置

  24. 24

    如何为 React Native 配置 Linter?

  25. 25

    如何忽略Sublime Linter SCSS(Sass)中的特定规则?

  26. 26

    在Atom中禁用特定的linter规则(对于js-standard)

  27. 27

    Phabricator linter找不到任何可定位路径

  28. 28

    这可能> Sublime3 + python linter + virtualenv吗?

  29. 29

    CSS-Linter与美化器不一致

热门标签

归档