🧩 Go错误处理 · 健壮性实战
30 章 · 完整体系
从哲学到项目
1
Go错误哲学
error接口设计 · 与异常区别 · 显式处理
01
2
基础错误创建
errors.New · fmt.Errorf · 格式化实践
02
3
错误类型系统
哨兵错误 · 自定义类型 · 值比较陷阱
03
4
错误包装与链式追踪
%w动词 · errors.Is · errors.As
04
5
错误处理模式
if err优化 · 函数式处理 · 提前返回
05
6
Panic与Recover
何时panic · recover场景 · 与error协作
06
7
defer在错误处理中的妙用
资源清理 · recover配合 · defer陷阱
07
8
日志与错误
log包 · 结构化日志 · 上下文注入
08
9
HTTP服务错误处理
中间件模式 · 统一响应 · 状态码
09
10
数据库操作错误处理
sql.ErrNoRows · 事务回滚 · 连接池
10
11
文件与IO错误处理
文件不存在 · 权限 · 部分写入
11
12
并发错误处理
goroutine收集 · WaitGroup · errgroup
12
13
Context与超时错误
DeadlineExceeded · Canceled处理
13
14
JSON序列化错误处理
Unmarshal类型 · 字段缺失 · 自定义
14
15
网络请求错误处理
超时重试 · 连接重置 · DNS失败
15
16
测试中的错误处理
错误注入 · mock场景 · 表驱动
16
17
错误码设计
业务码 · HTTP映射 · 文档化
17
18
错误分类与分级
临时vs永久 · 可恢复vs不可恢复
18
19
错误聚合与报告
多错误合并 · Sentry · 告警策略
19
20
gRPC错误处理
状态码 · 错误详情 · 拦截器
20
21
命令行工具错误处理
友好提示 · 退出码 · verbose
21
22
配置错误处理
默认值 · 验证 · 热加载错误
22
23
第三方库错误处理
错误适配 · 转业务错误 · 依赖隔离
23
24
错误处理性能优化
避免创建 · 错误池化 · 零分配
24
25
错误处理代码风格
命名规范 · 注释 · 审查清单
25
26
大型项目错误处理架构
分层模型 · 传播策略 · 监控
26
27
错误处理反模式
吞没错误 · 过度包装 · panic滥用
27
28
错误处理与可观测性
链路追踪 · 指标 · 日志关联
28
29
错误处理最佳实践总结
20条铁律 · 团队规范 · 代码生成
29
30
实战项目:健壮RESTful API
完整错误处理方案 · 服务构建
30