a.ExceptionHandlerExceptionResolver

1、@ExceptionHandler --- 统一处理一个controller中(@ExceptionHandler所在controller)的异常,局部捕获处理异常

 @ExceptionHandler({ArithmeticException.class, NullPointerException.class})
public String exception(Exception e) {
System.out.println(e);
       ModelAndView mv = new ModelAndView("error");
       mv.addObject("error", e);
       return mv;
return "error";
}

该注解作用对象为方法,并且在运行时有效;

该注解标识的方法不能有其他参数,所以前端想要获取异常信息,需要利用ModelAndView;

异常处理路径:最短路径优先。--- 如果有多个处理方法,根据异常的最近继承关系找到继承深度最浅的那个@ExceptionHandler注解方法

2、@ControllerAdvice --- 全局捕获处理异常 -- 注意spring版本,低版本可能不兼容,我一开始用的3.2.0不行,然后改成3.2.3不行,最后选择了4.3.18(我可是因为这个问题浪费了一个上午)

 @ControllerAdvice
public class exceptionHandler { @ExceptionHandler(ArrayIndexOutOfBoundsException.class)
public ModelAndView arrayIndexOutOfBoundsException(ArrayIndexOutOfBoundsException e) {
System.out.println(e);
ModelAndView mv = new ModelAndView("error");
mv.addObject("error", e);
return mv;
}
}

不要忘记spring配置文件配置<mvc:annotation-driven></mvc:annotation-driven>

b.ResponseStatusExceptionResolver ----自定义异常显示页面,类似404

@ResponseStatus(value=HttpStatus.xxx,reason="自己定义")

SimpleMappingExceptionResolver --- 通过配置文件捕获异常(看教程的代码,我没有实现)

 <!-- 通过SimpleMappingExceptionResolver 捕获异常 -->
<bean class="org.springframework.web.portlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.lang.ArrayIndexOutOfBoundsException">
<!-- 跳转到error.jsp页面 -->
error
</prop>
</props>
</property>
</bean>

springMVC异常处理总结的更多相关文章

  1. SpringMVC异常处理机制详解[附带源码分析]

    目录 前言 重要接口和类介绍 HandlerExceptionResolver接口 AbstractHandlerExceptionResolver抽象类 AbstractHandlerMethodE ...

  2. SpringMVC异常处理机制

    SpringMVC异常处理机制 springMVC会将所有在doDispatch方法中的异常捕获,然后处理.无法处理的异常会抛出给容器处理. 在doDispatch()中调用processDispat ...

  3. 【SpringMVC】SpringMVC 异常处理

    SpringMVC 异常处理 文章源码 异常处理思路 系统中异常包括两类:预期异常和运行时异常,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. Cont ...

  4. SpringMvc异常处理

    SpringMvc通过HandlerExceptionResolver处理程序的异常,包括Handler映射.数据绑定.以及方法执行时发生的异常,SpringMvc提供的HandlerExceptio ...

  5. SpringMVC 异常处理

    SpringMVC学习系列(10) 之 异常处理 在项目中如何处理出现的异常,在每个可能出现异常的地方都写代码捕捉异常?这显然是不合理的,当项目越来越大是也是不可维护的.那么如何保证我们处理异常的代码 ...

  6. SpringMVC异常处理方式

    一.描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合 ...

  7. SpringMVC——异常处理

    Spring MVC 通过 HandlerExceptionResolver 处理程序的异常,包括 Handler 映射.数据绑定以及目标方法执行时发生的异常. SpringMVC 提供的 Handl ...

  8. springmvc异常处理(非注解与注解)

    1.异常 程序中的异常一般分为两类:预期异常,运行时异常.前者是我们可预知的,我们一般通过捕获和抛出方式处理这些异常.后者主要通过代码规范.测试等手段来减少异常的发生.一般,我们在系统的DAO.Ser ...

  9. (十一)springMvc 异常处理

    文章目录 思路 自定义异常处理类 全局异常处理器 配置全局异常处理器 思路 在 springMvc 中,异常一层一层的往上抛,最后抛给 前端控制器,前端控制器内部会去找 全局异常处理器(一个系统只会有 ...

  10. springMVC异常处理(自定义异常)HandlerExceptionResolver

    注:本篇的异常主要指的是controller.service和dao层中执行方法抛出的异常. 一.为什么要处理异常? 因为如果我们不处理异常,异常信息就会直接抛出给浏览器,于是浏览器页面就直接显示异常 ...

随机推荐

  1. Java-JsonUtil工具类

    import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i ...

  2. gradle——入门

    为脚本中自定义变量传参: gradle -Pmyprop=myvalue 脚本攻略 https://blog.csdn.net/yanbober/article/details/49314255 强制 ...

  3. 【Winform-自定义控件】自定义控件学习+一个笑脸控件例子

    1.CompositeControls组合控件:在原有控件的基础上根据需要进行组合 2.ExtendedControls 扩展控件:继承自原有控件,添加一些新的属性和方法,绘制一些新元素 当每个But ...

  4. Logitech G系鼠标脚本编程,实现鼠标自动定位控制

    利用罗技官方提供的API来写一个鼠标自动定位移动脚本 点击脚本编辑器中的帮助选项,查看罗技官方提供的API说明,有很多实现好的鼠标功能 G-series Lua API V8.45 Overview ...

  5. 小程序对于华为Oppo的canvas二维码渲染数据量大

    setTimeout(()=>{ ctx.draw(false, function (e) { options.callback && options.callback(e); ...

  6. learning armbian steps(10) ----- armbian 源码分析(五)

    在上一节的分析当中,已经知道了uboot kernel的源代码路径及编译选项,以及rootfs的版本,相关信息如下所示: ## BUILD CONFIGURATION Build target: Bo ...

  7. mac 建立 .babellrc 格式文件

    打开MAC的终端: 1   先sudo -s获取最高权限: 2  然后通过cd进入项目所在的路径: 3  接着“vim .babelrc”新建一个.babelrc 文件: 键盘输入”i“进入编辑模式, ...

  8. HDX Insight Installation & Configuration

    NetScaler Insight Center 11.1 Installation & Configuration   NetScaler Insight Center 11.0 Insta ...

  9. Error in render: "TypeError: Cannot read property 'url_img' of undefined"

    如果我们 vue 组件中 template 里面添加了下标(靠数组索引得到的值),就会报索引为 undefined 解决方法: 在我们使用下标时,要在父组件上做条件判断,如果这个下标存在,然后就显示里 ...

  10. Python关于%matplotlib inline

    Python关于%matplotlib inline %matplotlib inline 是一个魔法函数(Magic Functions).官方给出的定义是:IPython有一组预先定义好的所谓的魔 ...