目录
一、异常处理必要性
如果不加以异常处理,错误信息肯定会抛在浏览器页面上,这样很不友好,所以必须进行异常处理。
二、异常处理思路
系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:
三、创建异常处理器
package com.by.error;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class CustomExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) {
ModelAndView mv = new ModelAndView();
mv.addObject("message", e.getMessage());
mv.setViewName("error");
return mv;
}
}
四、index.jsp
<a href="/account/findAccount25">异常处理器</a>
五、error.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${message}
<h2>程序已经出错,程序员已经被开除!请不要报警!</h2>
</body>
</html>
六、controller
全局异常处理器
@RequestMapping("/findAccount25")
public String findAccount25(Model model){
model.addAttribute("msg","hello");
// 模拟异常信息
int i=10/0;
return "success";
}
七、运行结果
注意:全局异常处理器 一个项目中只能创建一次 ,要不然会报错。