go - 错误处理设计 - 当需要根据错误类型在函数堆栈顶部处理错误,但需要沿堆栈添加信息时
问题描述
我需要在 Go 中重构代码,以便传播到主函数的不同类型的错误将导致不同的操作来处理它们。在任何情况下,都应记录错误消息。
我通常只会有不同类型的错误,并让它们派生自基本错误类,每个都对应于我想要采取的一种操作。此方法不适用于此代码,因为错误不断被重写,以便为错误字符串添加更多上下文。
例如 -
func start_something(...)(...){
var, err = get_something()
if err != nil {
return fmt.Errorf("unable to start something: %w", err.string())
}
}
我可以在错误中添加魔术字符串,然后在 main.xml 中解析错误消息。这感觉太难看了。将不胜感激任何有关如何编写此内容的建议方向。尤其是对编写 Go 有一定经验的人来说,这可以指导我找到正确的 Go 方法。
谢谢,
解决方案
推荐阅读
- reactjs - 如何在 React Navigation 5 中结合 StackNavigator 和 TabNavigator?
- project-reactor - EmitterProcessor - onNext 或 FluxSink
- powerbi - PBI 使用 2 个表 DAX 计算带有过滤器的 SUMX
- spring - Spring JPA Lock Table 并传播事务
- c# - 用于更新的 Mongo Db 驱动程序 C# 聚合
- webpack - 解包 - webpack
- php - Codeigniter 中的登录会话问题
- python - 使用链式连接和一个空格字符串 \" \"
- python - SettingWithCopyWarning:无法解决
- javascript - 在功能组件中调用函数