错误包装
1. 基础包装方法
func readConfig() error {
_, err := os.Open("config.json")
if err != nil {
return fmt.Errorf("配置文件读取失败: %w", err)
}
return nil
}
func main() {
err := readConfig()
if err != nil {
fmt.Println(err) // 输出: 配置文件读取失败: open config.json: no such file or directory
}
}2. 多层错误包装
func initSystem() error {
if err := readConfig(); err != nil {
return fmt.Errorf("系统初始化失败: %w", err)
}
return nil
}
func main() {
if err := initSystem(); err != nil {
fmt.Println(err)
// 输出: 系统初始化失败: 配置文件读取失败: open config.json: no such file or directory
}
}3. 自定义错误类型包装
4. 包装多个错误
5. 处理被包装的错误
6. 高级包装模式
7. 错误包装最佳实践
8. 重要注意事项
完整包装流程图
最后更新于