springMVC全局异常类

对于controller层出现的异常,我们可以专门写个ExceptionController类来管理

首先在别的controller层写个异常

@Controller
@RequestMapping("/admin")
public class AdminController {


    @RequestMapping("/testError")
    public String testError(){
        int a=7/0;
        return "suc";
    }

}

然后再写个ExceptionController来进行处理

package com.yy.controller;

@ControllerAdvice
//用于注解该控制器类为全局异常处理类
public class TestErrorController {

    @ExceptionHandler
    public String exceptionHand(Exception e){
        System.out.println(e.getMessage());
        return "error";
    }
}

这样,当其他controller层中的类发生异常后,将自动在ExceptionController里面寻找相对应的异常然后处理,(我们可以写多个ControllerAdvice来处理不同的exception)这里直接跳到exceptionHand()方法中处理(方法中可以记日志,打印异常信息等),最终跳到error.jsp界面

注意,全局异常类其实相当于一个切面一样,但是这个全局异常不能注释成service,所以不能放在aop层中,所以它还是放在controller层里




----------------------------------------------------------------------------------------------------------------------------------

当异常处理很简单时(不搞日志,只跳转之类的),我们可以直接在springMVC的配置文件中配置全局异常,所以这里不再贴代码,大家知道就好

猜你喜欢

转载自blog.csdn.net/qq_36582604/article/details/80880209
今日推荐