Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 让@ExceptionHandler处理除AccessDeniedException之外的所有异常?_Java_Spring_Spring Mvc_Exception Handling - Fatal编程技术网

Java 让@ExceptionHandler处理除AccessDeniedException之外的所有异常?

Java 让@ExceptionHandler处理除AccessDeniedException之外的所有异常?,java,spring,spring-mvc,exception-handling,Java,Spring,Spring Mvc,Exception Handling,我编写了一个@ExceptionHandler以JSON格式发送REST请求的异常。但是,由于Spring安全性的工作方式,AccessDeniedExceptions不能被处理 如果我只是在处理程序中重新调用一个AccessDeniedException,我会得到一个错误级别日志,说明: Failed to invoke @ExceptionHandler method: SomeMethod() throws java.lang.Exception org.springframework.s

我编写了一个
@ExceptionHandler
以JSON格式发送REST请求的异常。但是,由于Spring安全性的工作方式,
AccessDeniedException
s不能被处理

如果我只是在处理程序中重新调用一个
AccessDeniedException
,我会得到一个
错误
级别日志,说明:

Failed to invoke @ExceptionHandler method: SomeMethod() throws java.lang.Exception
org.springframework.security.access.AccessDeniedException: Access is denied
...Stack...
我无法安全地禁用类的
ERROR
级别日志记录(
ExceptionHandlerExceptionResolver
),但是拥有这些stacktrace对于操作人员来说非常混乱


是否有任何方法可以使
@ExceptionHandler
不处理此特定异常?

我认为您可以使用全局异常处理程序,这样您就不会手动处理此
AccessDeniedExceptions
, 将针对每种异常引发此全局异常(手动处理的异常处理程序除外):


我认为您可以使用全局异常处理程序,这样您就不用手动处理这个
AccessDeniedExceptions
, 将针对每种异常引发此全局异常(手动处理的异常处理程序除外):


您可以添加自定义泛型excepton超类,并从中扩展所有异常。并用ExceptionHandler捕获它们。@IlyaDyoshin不幸的是,我的应用程序总共抛出了大约3个自定义异常。大多数异常都是由框架引发的,我不希望对其进行包装。提出的问题:可能在Spring 5中得到修复。您可以添加自定义的泛型excepton超类,并从中扩展所有异常。并用ExceptionHandler捕获它们。@IlyaDyoshin不幸的是,我的应用程序总共抛出了大约3个自定义异常。大多数例外都是由我不愿意包装的框架造成的。提出的问题:可能在Spring 5中得到修复。这就是我所拥有的,也是问题所要避免的。处理
@ExceptionHandler
的类将记录我不想要的日志…这就是我所拥有的,也是问题要避免的。处理
@ExceptionHandler
的类将记录我不想要的日志。。。
@ControllerAdvice
public class GlobalHandler {

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