使@ExceptionHandler处理除AccessDeniedException之外的每个异常?

时间:2016-02-08 10:48:10

标签: java spring spring-mvc exception-handling

我写了一个@ExceptionHandler来在JSON中发送REST请求的异常。但是,由于Spring Security的工作方式,不得处理AccessDeniedException

如果我只是在处理程序中重新抛出AccessDeniedException,我会收到ERROR级别的日志记录:

Failed to invoke @ExceptionHandler method: SomeMethod() throws java.lang.Exception
org.springframework.security.access.AccessDeniedException: Access is denied
...Stack...

我无法安全地禁用记录它的类ERROR级别的日志记录(ExceptionHandlerExceptionResolver),但是对于操作人员而言,这些堆栈跟踪非常混乱。

有没有让@ExceptionHandler无法处理这个特定的例外?

1 个答案:

答案 0 :(得分:0)

我认为您可以使用全局异常处理程序,因此您不需要手动处理此AccessDeniedExceptions, 这种全局异常将针对各种异常抛出(手动处理的异常处理程序除外):

@ControllerAdvice
public class GlobalHandler {

    @ExceptionHandler(Exception.class)
    public ModelAndView handleException() {
        return new ModelAndView("errorGlobal");
    }
}