在Spring控制器中捕获异常是可取的吗?

时间:2013-11-29 08:13:42

标签: java exception spring-mvc exception-handling

我与我的经理讨论过在spring控制器对象中有通用异常捕获

public class userController{

  public void addUser(@Model user UserObj){

         //call service and throws service exception(wrap database exception in service layer)
    catch (ServiceException sExp){
        log error here
        redirect error page;
   } catch (Exception ecp) {
       redirect error or log error for reference;
   }
}

使用上面的代码我和我的经理发生了冲突,说你不应该有异常阻止,只有控制器中的服务异常。但我认为最坏的情况我们可以有异常,它会捕获未注意到的业务异常和记录错误。

我认为有例外不是坏主意。如果我只在控制器级别有异常块会有什么后果。

1 个答案:

答案 0 :(得分:1)

不,您不应该在控制器中处理意外的异常。如果要记录意外异常,则使用全局异常处理程序,该处理程序将对所有控制器方法的所有异常执行此操作。这将集中处理异常,防止大量代码重复,并避免使控制器方法混乱。

查看@ControllerAdvice@ExceptionHandler注释。

相关问题