首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入Go:错误的包装与解包

但似乎Go的error处理并不够强大,也缺乏统一的错误处理流程的逻辑;在经历了大量的讨论后,Go 1.13引入了错误的包装和解包,也许某种程度上可以优化我们的错误处理流程。...Go在1.13版本中引入了错误的包装与解包 仅需fmt.Errorf("......,作用分别是:error是否包含target、是否包含可转换为target的错误 在实践中,我们总是可以 包装error以便添加函数调用的上下文参数以便问题排查 在最终的栈底进行打印与解包,打印直接使用...Error() string方法,解包解析出需要的固定错误以作为API接口的响应返回 (太长不看版结束) 假设我们需要实现一个服务,对于管理员用户返回请求中ID所对应的数据,否则返回错误;该服务需要符合云...r := &Response{} var apiError *APIError if errors.As(e, &apiError) { // 解包错误并得到“可返回”的错误

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

如何优雅做系统错误提示

因此,作为程序员群体的一份子,在这里我想呼吁大家认真对待错误提示,特别是那些不是给“人”看的错误提示…… 作为软件的创造者,我们虽然无法避免出现异常、出现bug,但是我们可以做到避免无意义的错误提示产生...首先,一些常见的容易让人摸不着头脑的错误提示要先避免。比如, 提交失败。 数据读取失败。 …… 这类错误提示看上去准确表达了当前遇到的问题,实际上啥也没说。...当然,比给出合理的错误提示更好的是,避免出现错误。所以你还可以更进一步,提前规避掉一些错误。 比如, 为了避免日期选择超过有效范围,可以对有效范围外的日期设置为禁用状态。...为了避免在弱网络下页面无法正常加载而提示错误,可以做缓存,提前预存一些数据在本地。 …… 好了,总结一下。 这篇呢Z哥和你分享了我对软件系统抛出的错误提示的看法。...我认为好的错误提示需要符合以下4点。

1.8K10
领券