Rav*_*rat 7 java rest spring spring-mvc
我正在编写一个REST API.我的DAO层可能有两个例外,即Exception_X和Exception_Y.如果我Exception_X在DAO层遇到异常,我的控制器应该返回状态代码200,如果Exception_Y那样401,如果一切顺利,控制器应该返回201.现在我在想什么,我将抛出遇到的异常,因为它是从DAO层到控制器通过服务层,在catch控制器块中我将返回响应.可接受还是有其他标准方式?
是的,这是一种非常可接受的方式.但是,try-catch我建议不要使用,而是为REST控制器实现异常处理程序.这样,您就不必混乱REST方法.
此外,最好在REST层中为错误消息创建模型对象ErrorResponse,并提供适当的信息:
class ErrorResponse {
    int statusCode;
    String errorMessage;
}
Run Code Online (Sandbox Code Playgroud)
并从异常处理程序返回它的对象.顺便说一句,您还可以使用@ResponseStatus注释将异常类直接映射到响应:
@ResponseStatus(value=401, reason="message")
class Exception_Y extends RuntimeException {
} 
Run Code Online (Sandbox Code Playgroud)
然后,您不必为该异常编写异常处理程序.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           3313 次  |  
        
|   最近记录:  |