SpringMVC的异常

@ExceptionHandler(value={ArithmeticException.class})
    public ModelAndView ex1(Exception ex){
        ModelAndView mv=new ModelAndView();
        mv.setViewName("error");
        mv.addObject("ex", ex);
        return mv;
    }

在出现异常的类中添加异常的方法。

一、注解的时候不在使用@RequestMapping(),而是使用@ExceptionHandler()进行注解。

@ExceptionHandler()的参数是:

  value= {  ArithmeticException.class},是一个数组,可以添加多个异常的说明

二、这时候如果想向前天传递参数就不能在方法的参数中使用Map,而是改用

  ModelAndView。

三。如果在本类中写了多个异常的方法,比如写了

@ExceptionHandler(value={Exception.class})
    public ModelAndView ex2(Exception ex){
        ModelAndView mv=new ModelAndView();
        System.out.println(ex);
        mv.setViewName("error");
        mv.addObject("ex", ex);
        return mv;

    }

    @ExceptionHandler(value={ArithmeticException.class})
    public ModelAndView ex1(Exception ex){
        ModelAndView mv=new ModelAndView();
        System.out.println(ex);
        mv.setViewName("error");
        mv.addObject("ex", ex);
        return mv;
    }

这时如果出现了ArithmeticException异常,会执行最接近异常的异常方法,也就是会执行ex1的

异常方法。

三、全局异常处理

  如果想定义一个监视所有类的异常的方法

  再创建一个类,类的上方不再是@Controller注解,而是使用@ControllerAdvice进行注解,

  然后写一个异常的方法 ,用@ExceptionHandler进行注解。

  

@ControllerAdvice
public class Exception1 {
    @ExceptionHandler(value={ArithmeticException.class})
    public ModelAndView ex1(Exception ex){
        ModelAndView mv=new ModelAndView();
        mv.setViewName("error");
        mv.addObject("ex", ex);
        return mv;

    }

}
时间: 2024-11-15 09:52:01

SpringMVC的异常的相关文章

SpringMVC 处理异常的4种方式

springmvc处理异常有三种方式: 1.在一个controller中定义一个方法,用@ExceptionHandler注解标注.(优先级最高) @ExceptionHandler public ModelAndView handleException(Exception exception){     ModelAndView mv = new ModelAndView("error/500");     mv.addObject("ex",exception)

Springmvc处理异常

文章目录 关于异常 异常的体系结构: 1 2 3 4 5 6 7 8 9 10 11 12 13 Throwable Error OutOfMemoryError(OOM) Exception RuntimeException NullPointerException:某个为null的对象调用了属性或方法 ClassCastException:强制转换为不匹配的数据类型 ClassNotFoundException:尝试加载的类不存在 IndexOutOfBoundsException:使用Li

springmvc 通过异常增强返回给客户端统一格式

在springmvc开发中,我们经常遇到这样的问题:逻辑正常执行时返回客户端指定格式的数据,比如json,但是遇NullPointerException空指针异常,NoSuchMethodException调用的方法不存在异常,返回给客户端的是服务端异常堆栈信息,导致客户端不能正常解析数据:这明显不是我们想要的. 幸好从spring3.2提供的新注解@ControllerAdvice,从名字上可以看出大体意思是控制器增强.原理是使用AOP对Controller控制器进行增强(前置增强.后置增强.

springmvc中拦截器与springmvc全局异常处理器的问题

最近在做一个练手的小项目, 系统架构中用了springmvc的全局异常处理器, 做了系统的统一异常处理. 后来加入了springmvc的拦截器, 为了一些需求, 在拦截器中的 preHandle 方法 中抛出了系统自定义异常, 当时有有个疑惑, 就是抛出的这个异常全局异常处理器怎么处理的. 这里的全局异常处理器时通过实现HandlerExceptionResolver这个借口实现的 要指出的是 resolveException方法 中 handler中代表的是什么,我没遇到这个问题之前我认为这玩

SpringMVC学习--异常处理器

简介 springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. 系统的dao.service.controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图: 自定义异常类 为

springmvc 全局异常解决方案

系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. 系统的dao.service.controller出现都通过throwsException向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图: 1.自定义异常类: package cn.itcast.ssm.exception; public class CustomerException exten

自定义springmvc统一异常处理器(实现HandlerExceptionResolver接口)不起作用的一种情况

ExceptionResolverCustom 这个是自定义的异常处理器类. 在springmvc中注册 在web.xml文件中屏蔽springmvc自动注册的异常处理器 网上的资料就是这么配置的,可自己配置的异常处理器就是不起作用 看下springmvc是如何加载自定义的异常处理器的 可以看到,springmvc从容器中取自定义异常处理器时是通过指定的id去取的, 所以说在springmvc中配置自定义处理器的时候id注意下不要写错,这个id是 handlerExceptionResolver

SpringMVC接口测试异常:Can not deserialize instance of int out of START_OBJECT token

之前使用springmvc搭建了restful风格的接口服务,在使用mockmvc进行集成测试的时候出现了异常:Can not deserialize instance of int out of START_OBJECT token.为什么会出现这个问题?怎么解决这个问题呢?接下来本文详细分析讲解这个问题. 一.问题展现 接口代码 @ResponseBody @RequestMapping(value = "/m1", method = RequestMethod.POST) @Ap

springMVC关于异常优先级的处理

优先级 既然在SpringMVC中有两种处理异常的方式,那么就存在一个优先级的问题: 当发生异常的时候,SpringMVC会如下处理: (1)SpringMVC会先从配置文件找异常解析器HandlerExceptionResolver (2)如果找到了异常异常解析器,那么接下来就会判断该异常解析器能否处理当前发生的异常 (3)如果可以处理的话,那么就进行处理,然后给前台返回对应的异常视图 (4)如果没有找到对应的异常解析器或者是找到的异常解析器不能处理当前的异常的时候,就看当前的Controll

springmvc之异常处理中ExceptionHanderExceptionResolver

1.springmvc通过HandlerExceptionResolver处理程序的异常,包括Handler映射.数据绑定以及目标方法执行时发生的异常. 2.springmvc提供的HandlerExceptionResolver的常用实现类: ExceptionHanderExceptionResolver DefaultHanderExceptionResolver ResponseStatusExceptionResolver SimpleMappingExceptionResolver