Web服务中的异常设计

时间:2015-08-18 15:38:53

标签: java rest exception exception-handling

在一个Web RESTful服务中,我需要调用第三个服务,我怎样才能优雅地返回错误信息?

在我看来,它是这样的:

  1. DB操作错误 DBService层,在日志中打印错误堆栈,并抛出带有消息的Exception,只需描述错误原因,例如"记录不存在"或"主键冲突"等等。其余服务层捕获异常,并返回500并显示此错误消息。

  2. 第3次系统错误 调用第三个系统的服务,记录错误,并且不会在休息响应中返回错误堆栈,它只会抛出一个带有消息的异常,例如"模板不存在"等等。其余服务层捕获异常,并返回500并显示此错误消息。

  3. 实际上,这两个案例的流程几乎相同,我认为这很简单,但我不知道这是一个很好的设计。

    我想告诉我们更多关于错误的原因,但不能直接将错误调用堆栈返回给用户。

1 个答案:

答案 0 :(得分:0)

是的,这是一个很好的方法。您可以抛出自定义异常,是的,在控制器中捕获异常并返回相应的错误代码并带有消息