# 博客系统后端开发——异常处理
- 对于这样的一段代码
@Controller
public class indexController {
@GetMapping("/")
public String index(){
int i = 9/0;
return "index";
}
}
这是在浏览器直接使用url来访问就可以了跳转到这个页面了。
-
首先在项目开始前定义了两个页面,一个是404,一个是500,还有一个index首页。 什么时候会跳转到404呢? 当我们客户端浏览器输错url的话,就会跳转到404页面; 当我们服务端有错误代码的话,比如9/0,就会跳转到500页面。
-
这个和上面的区别是什么? 首先不需要 getMapping
@ControllerAdvice
public class ExceptionHandlerController {
/**
* 这个参数HttpServletRequest:就是获取url
* Exception 获取错误的类型
* @return
*/
public ModelAndView exceptionHandler(HttpServletRequest request,Exception e){
ModelAndView mv = new ModelAndView();
mv.addObject("url",request.getRequestURL());
mv.addObject("exception",e);
mv.setViewName("error/error");
return mv;
}
}
4.上面的ExceptionHandlerController 会把所有的异常都处理,但是我们如果想要页面报404 怎么解决呢? 其实我直接可以跳转404页面就可以了,但是一般不这样做。 一般的做法是自定义异常类。