go - 错误处理:提取错误上下文
问题描述
我有一个返回的函数error
:
func foo(i int) error {
err := errors.New("error here")
if i == 1 {
return errors.Wrap(err, "one")
}
if i == 2 {
return errors.Wrap(err, "two")
}
return nil
}
我想处理调用函数中的错误,但要做到这一点,我需要知道错误的上下文。像这样的东西:
err := foo(i)
switch err.getContext() {
case "foo":
case "bar":
}
我找到了causer接口,但我不知道如何在这里使用它。
还是我需要在struct
这里为每种类型的错误创建不同的类型 ()?
解决方案
推荐阅读
- c# - 机器学习网。mlContext.Transforms.Text.FeaturizeText 和 mlContext.Transforms.Categorical.OneHotEncoding 方法有什么区别?
- python - 查找存在 None 类型和过滤器的索引
- javascript - Javascript函数不会一次又一次地停止调用它自己
- bash - 在 Bash 脚本中将连接的字符串作为命令运行
- outlook-addin - 如何识别不活动的 Outlook 搜索文件夹
- java - 使用 switch 语句将字符串中的每个元音替换为以下元音
- kubernetes - 如何将请求代理到 Kubernetes 中的外部端口?
- c# - await actionContext.Request.Content.ReadAsStringAsync() 返回一个空字符串
- javascript - 如何在 jsx 中返回一个对象并立即使用而不依赖于 setState 作为它的异步
- vapor-fluent - 有没有办法检查记录是否存在?