首页 > 解决方案 > 当无效值作为实体类型传递时如何返回自定义错误消息?

问题描述

我有一个具有数字属性的实体类型,如果 API 的用户在他们的请求中为该属性传递了一个无效数字,我会收到 400 Bad Request JSON 错误(这很好),但在错误消息中,显示堆栈跟踪。我想更改此行为,以便可以提供自定义消息。如何才能做到这一点?

标签: javagoogle-cloud-endpoints

解决方案


解决此问题的可能解决方案是使用应用程序级错误代码。它将在每种情况下仅指示一个错误。例如,您可以保留错误代码 3,

   {
        “status _code”:400,
        “reason_phrase”:”JSON 400 error”,
        “error_code”: 3
   }

当有人使用浏览器测试 API 时,Status_code 和 reason_phrase 字段会很有帮助,客户端可以通过检查错误代码字段来找出到底出了什么问题。

另一种可能适合的方法是使用基于资源的错误代码,您可以对每个错误代码使用字符串前缀,并且该前缀由资源确定。例如:

   {
        “status _code”:400,
        “reason_phrase”:”JSON 400 error”,
        “error_code”:”big_error”
   }

为了能够提供与错误代码相对应的自定义错误消息,请执行以下操作:

   {
        “status_code”:400,
        “reason_phrase”:”bad request”
        “Error_code”:”error_code_that_needs_be_handled_by_custom_message”
        “error_message”:”put the custom message over here”
   }

以下链接中提供了处理错误的代码以及更多信息和说明,它将详细解释 Java 处理错误。我很确定它会帮助你。

请检查以下链接以获取代码参考和处理错误的详细信息

谢谢!


推荐阅读