1:介绍:
我们使用SimpleMappingExceptionResolver获取不到异常对象,为了能够简化代码,而且能够获取到异常对象,我们使用HandlerExceptionResolver来处理异常,并进行页面的跳转。
2:使用:
2.1 项目结构:
2.2:编写异常处理类:
package com.bjsxt.springbooterr.exception;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Configuration
public class GloableHandler3 implements HandlerExceptionResolver {
/**
*
* @param httpServletRequest
* @param httpServletResponse
* @param o 出现异常的对象
* @param e 异常对象
* @return
*/
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
ModelAndView mv=new ModelAndView();
if (e instanceof NullPointerException){
mv.setViewName("error5");
}
if(e instanceof ArithmeticException){
mv.setViewName("error6");
}
mv.addObject("error",e.toString());
return mv;
}
}
2.3 编写控制器:
package com.bjsxt.springbooterr.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class UserController {
//空指针异常
@RequestMapping("/pagejump")
public String pageJump(){
String str=null;
str.length();
return "ok";
}
//算术异常
@RequestMapping("/pagejump1")
public String pageJump1(){
int i=3/0;
return "ok";
}
}
2.4:编写异常页面
2.5:测试: