Go 的错误处理为什么用 error 而不是异常?
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
Go 把错误当普通值显式传递(函数返回 error,调用方 if err != nil 判断),而不是异常机制。设计哲学:错误是程序运行的一部分,显式处理让控制流清晰、无隐藏的异常跳转,代码可读性和可预测性强。代价是代码略显啰嗦。优雅实践:fmt.Errorf 包装上下文;errors.Is/As 判断错误类型;业务层统一错误码。Go 2 曾讨论改进但保持简单是第一原则。
回复
0 条回复