过滤错误,我们可以向最终用户显示哪些错误

时间:2017-12-04 12:20:36

标签: go microservices grpc

我正在开发具有多个微服务的平台,我需要过滤错误:可以向最终用户返回哪种错误,哪些错误。

例如,数据库错误是内部的,它们不会返回给用户。相反,我们使用状态代码发送内部服务器错误。但验证错误可以发送回用户。

我知道如何手动完成。但我正在寻找最佳实践来以正确的方式设计它。

P.S。我正在使用Go语言和GRPC框架。

1 个答案:

答案 0 :(得分:0)

当使用golang在gRPC中返回错误时,它使用status library。当您的gRPC服务器返回错误时,您会收到状态代码和消息。您可以使用FromError函数在客户端获取状态代码和消息。当我在服务器端遇到db错误时,我返回一个消息INTERNAL_SERVER_ERROR,代码为Internal Code = 13。我的客户端检查代码并确定要返回给用户的消息。