一、步骤
1.编写自定义异常处理类(做提示信息的)
2.编写异常处理器
3.配置异常处理器(跳转到友好的提示页面)
二、案例
1、
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/testException")
public String testException() throws Exception{
System.out.println("/testException..........");
try{
//模拟异常
int a = 10 / 0;
}catch (Exception e){
e.printStackTrace();
throw new SysException("被零除了。。。。。");
}
return "success";
}
}
2、
public class SysException extends Exception{
//存储提示信息
private String message;
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public SysException(String message) {
this.message = message;
}
}
3、
//异常处理器类,需要实现特定的接口
public class SysExceptionResolver implements HandlerExceptionResolver {
/**
* 处理异常业务逻辑
*/
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception ex) {
//获取异常对象,ex
SysException e = null;
if(ex instanceof SysException){
e = (SysException)ex;
}else {
e = new SysException("系统在维护。。。");
}
//创建ModelAndView对象,可以跳转到要去的页面
ModelAndView mv = new ModelAndView();
//加入错误信息
mv.addObject("errorMsg",e.getMessage());
//配置调到哪里error.jsp页面等
mv.setViewName("error");
return mv;
}
}
4、
<!--配置异常处理器--> <bean id="sysExceptionResolver" class="cn.rzpt.exception.SysExceptionResolver"/>
5、
error.jsp
${errorMsg}
6、springmvc.xml配置
<!-- 开启注解扫描 -->
<context:component-scan base-package="cn.rzpt"/>
<!-- 视图解析器对象 -->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--前端控制器,哪些静态资源不拦截-->
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
本文介绍了如何在Spring MVC中创建自定义异常处理类、异常处理器,并进行配置,以实现友好的错误页面跳转。通过示例展示了在Controller中抛出自定义异常,然后由异常处理器捕获并返回错误信息到指定的error.jsp页面的过程。
5372

被折叠的 条评论
为什么被折叠?



