全局异常处理
在一个项目中,我们希望在发生一些异常时,如果在service层没有对异常进行捕获处理,则在返回给前端时可以做一个统一的异常捕获处理,这时候可以用Spring MVC为我们提供的全局异常处理机制
异常处理器
创建一个异常处理器,需要两个注解@ControllerAdvice
和@ExceptionHandler
,首先我们将@ControllerAdvice
注解添加在我们自定义的异常处理器中
@ControllerAdvice
public class GlobalExceptionHandler {
}
这个注解使得异常处理器在捕获异常时,返回一个视图
然后在视图处理器中添加异常处理方法,在方法上添加@ExceptionHandler
注解,在注解中绑定需要捕获的异常的class类,这样如果发生的绑定的异常,则会执行异常处理方法中的逻辑,并返回一个视图,如示例中,当发生RuntimeException
异常时返回一个index.html的页面
@ExceptionHandler
注解绑定异常的属性是一个数组类型,我们可以使用数组的写法绑定多个异常
捕获异常并对异常进行处理,如打印异常信息,可以将一个Exception对象作为参数添加到异常处理方法的参数列表中
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
public String handleRunTimeException