Spring-MVC控制器和异常处理


问题内容

想问一个关于spring-mvc控制器的最佳实践问题。请查看以下代码:

    @Autowired
    SomeService service;

    @RequestMapping (...)
    public @ResponseBody Response createSomething () {

       try {

            serviceResponse = service.doSomething();

            //create a success response and return

       }
       catch (SomeServiceException e) {
             //create an error response and return 
       }

}

错误处理是在控制器级别上进行的吗?还是服务类不应引发如上所示的异常。请查看并告知我。


问题答案:

我会说您有三种策略,具体取决于您的用例。

大致有三种策略:HandlerExceptionResolver,@
ExceptionHandler
和在操作内部处理异常。

它们的用例是:整个应用程序的通用异常处理程序,整个控制器,相应的特定操作。