JavaWeb——springMVC异常处理器
2017-11-28 15:42
399 查看
一、引言
第一次听说异常处理器这个东西,感觉好神奇高大上,可以一接触就感觉这不就是普通的exception处理么==一切名词都是纸老虎,下面来讲讲异常处理了,就是不能怂==二、原理
总体说下,异常处理器的功能就是为了当出现运行时异常的时候,重新跳转到另外一个页面报个错,主要是为了前后端一起的情况,如果使用前后端分离的开发,这个真心不太实用,不太实用,不太实用,重要的事情说三遍==异常处理器处于框架的位置就是这个地方,每当dao、service、controller层有异常抛出的时候,都会向上抛到dispatcherservlet,最后给exceptionresolver处理。
三、代码时间
1、首先自定义一个异常类CustomException
package com.xcy.exception;public class CustomException extends Exception {
private String message;
public CustomException (String message) {
this.message=message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
2、创建全局异常处理器类CustomExceptionResolver,实现接口HandlerExceptionResolver的方法resolveException
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
public class CustomExceptionResolver implements HandlerExceptionResolver{
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) {
// 解析出异常类型
// 如果该 异常类型是系统 自定义的异常,直接取出异常信息,在错误页面展示
// 如果该 异常类型不是系统 自定义的异常,构造一个自定义的异常类型(信息为“未知错误”)
CustomException customerException=null;
if(ex instanceof CustomException){
customerException=(CustomException)ex;
}else{
customerException=new CustomException(ex.getMessage());
}
String message = customerException.getMessage();
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("message", message);
modelAndView.setViewName("error");
return modelAndView;
}
}
我这样写的目的是当系统异常报出的时候就在错误页面显示系统自带异常信息,当自己new CustomException(“自定义异常”)的时候就在错误界面显示 自定义异常==
3、配置springmvc.xml,让异常达到dispatcherservlet的时候让上面的全局异常处理器起作用
在里面随便地方加上就可以<!-- 全局异常处理 -->
<bean class="com.xcy.exception.CustomExceptionResolver"></bean>
四、总结
springMVC异常处理器原理与作用;springMVC异常处理器配置;
相关文章推荐
- JAVAWEB开发之SpringMVC详解(二)——高级开发、数据回显、参数绑定集合、图片上传、json交互、validation校验、异常处理、RESTful支持、拦截器
- springmvc在 IDEA 异常:java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServl
- JavaWeb框架-SpringMVC-3-异常与静态资源处理
- javaWeb常见异常的解决方法
- JavaWeb之Eclipse中使用Maven构建SpringMVC项目
- SpringMVC学习(八)——SpringMVC中的异常处理器
- springmvc全局异常处理器的配置
- idea调试SpringMvc, 出现:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
- [置顶] 【Java Web开发】springmvc web平台搭建初试
- java WebService 异常
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet服务器启动报异常
- 在maven项目中使用apache cxf中遇到异常 java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
- SpringMVC如何用Java类配置(不通过web.xml和XML方式)
- SpringMVC 拦截异常Exception返回Json,适合Java做后台业务项目
- Java中java.lang.ClassNotFoundException: org.springframework.web异常
- SpringMVC数组、集合类型参数绑定与异常处理器
- 【Java Web】MVC(一)初识SpringMVC
- javaWeb 项目整体异常处理方案
- SpringMVC(九)----异常处理器
- SpringMVC整合fastdfs-client-java实现web文件上传下载