【发布时间】:2020-12-24 06:47:12
【问题描述】:
我想知道如何在内部处理 REST API 后端的错误。假设用户提供了一个不完整的请求负载、验证失败或寻找不存在的东西。对于这些情况,我们希望返回 400 或 404。
在某些框架中(仅限于我有经验的框架),我们通过抛出异常(NestJS、Spring 等)来做到这一点。但是在 Go 中,操作方法(验证、访问数据库)返回的 error 可以指示错误(if err != nil),我们可以冒泡 err 直到控制器级别并对其进行不同的处理(返回一些特定的状态、错误消息等)。
我的问题是,哪种方式(或者如果有其他首选方式)是处理后端错误的最佳方式?问题是抛出异常将显示在任何日志监控工具上,并且会显示应用程序有很多错误,即使大多数可能是 4XX 错误(我们可以过滤日志以明确找到 50X 错误),并使用 errors 返回对象对于我们拥有的每个验证功能,冒泡可能很麻烦。如果有任何解释类似主题的存储库示例或文章,我会很高兴。
谢谢!
【问题讨论】:
标签: rest exception design-patterns error-handling