Java web服务中的异常设计

Java web服务中的异常设计,java,rest,exception,exception-handling,Java,Rest,Exception,Exception Handling,在web RESTful服务中,我需要调用第三个服务,如何返回错误消息 在我看来,是这样的: 数据库操作错误 DBService层,在日志中打印错误堆栈,抛出异常,并给出一条简单描述错误原因的消息,如“记录不存在”或“主键冲突”等。rest服务层捕获异常,并返回500条此错误消息 第三系统错误 调用第三个系统、记录错误并在rest响应中不返回错误堆栈的服务,它只抛出带有消息的异常,如“模板不存在”等。rest服务层捕获异常,并返回带有此错误消息的500 实际上,两种情况下的流程几乎相同,我认为它

在web RESTful服务中,我需要调用第三个服务,如何返回错误消息

在我看来,是这样的:

  • 数据库操作错误 DBService层,在日志中打印错误堆栈,抛出异常,并给出一条简单描述错误原因的消息,如“记录不存在”或“主键冲突”等。rest服务层捕获异常,并返回500条此错误消息

  • 第三系统错误 调用第三个系统、记录错误并在rest响应中不返回错误堆栈的服务,它只抛出带有消息的异常,如“模板不存在”等。rest服务层捕获异常,并返回带有此错误消息的500

  • 实际上,两种情况下的流程几乎相同,我认为它非常简单,但我不知道它是一个好的设计


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

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