spring mvc 异常统一处理方式
来源:互联网 发布:sql server卸载干净 编辑:程序博客网 时间:2024/05/17 09:27
1、实现自己的HandlerExceptionResolver,HandlerExceptionResolver是一个接口,springMVC本身已经对其有了一个自身的实现——DefaultExceptionResolver,该解析器只是对其中的一些比较典型的异常进行了拦截处理。
public class ExceptionHandler implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { // TODO Auto-generated method stub return new ModelAndView("exception"); } }
上述的resolveException的第4个参数表示对哪种类型的异常进行处理,如果想同时对多种异常进行处理,可以把它换成一个异常数组。定义了这样一个异常处理器之后就要在applicationContext中定义这样一个bean对象,如:
<bean id="exceptionResolver" class="com.tiantian.xxx.web.handler.ExceptionHandler"/>
这样就可以了。
2、如果我们不想定制。可是使用 SimpleMappingExceptionResolver这个继承类。
<!-- 全局异常配置 start --> <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="org.apache.shiro.authz.UnauthorizedException">welcome/error/unauthorized</prop> <prop key="org.apache.shiro.authz.UnauthenticatedException">welcome/signIn/login</prop> </props> </property> <property name="statusCodes"> <props> <prop key="errors/error">500</prop> <prop key="errors/404">404</prop> </props> </property> <!-- 设置日志输出级别,不定义则默认不输出警告等错误日志信息 --> <property name="warnLogCategory" value="WARN"></property> <!-- 默认错误页面,当找不到上面mappings中指定的异常对应视图时,使用本默认配置 --> <property name="defaultErrorView" value="errors/error"></property> <!-- 默认HTTP状态码 --> <property name="defaultStatusCode" value="500"></property> </bean> <!-- 全局异常配置 end -->
3、使用@ExceptionHandler进行处理
使用@ExceptionHandler进行处理有一个不好的地方是进行异常处理的方法必须与出错的方法在同一个Controller里面,不过可以写一个基础的controller 没个controller 都继承他。
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RequestMapping; import com.tiantian.blog.web.servlet.MyException; @Controller public class GlobalController { /** * 用于处理异常的 * @return */ @ExceptionHandler({MyException.class}) public String exception(MyException e) { System.out.println(e.getMessage()); e.printStackTrace(); return "exception"; } @RequestMapping("test") public void test() { throw new MyException("出错了!"); } }
阅读全文
0 0
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理方式
- spring mvc 异常统一处理
- spring mvc 异常统一处理
- spring mvc 异常统一处理
- spring mvc 异常统一处理
- spring mvc 异常统一处理
- 用Java打开记事本
- UCGUI学习之路(3)增加其它字体
- 二叉树
- 190. Reverse Bits
- Java 多态
- spring mvc 异常统一处理方式
- mysql基本操作快速复习(二)
- 小牛电动25日开媒体见面会,豪言改变两亿人!
- 腾讯众创空间孵出首个“独角兽”企业 微票儿完成C轮融资15亿
- Mac segmentation fault :11
- 秒杀美国的Lily无人机?中国智造这回真火了!
- 搜狗输入法再诉百度索赔1.8亿元 百度侵权背后是对创新的漠视
- netty源码分析(十二)Channel与ChannelHandler及ChannelHandlerContext之间的关系分析
- eclipse安装JAVA反编译插件