SpringMVC(三)异常处理

mac2022-06-30  84

一、在Controller内处理局部异常   @ExceptionHandler(value={ArithmeticException.class}) public ModelAndView handlExecution(Exception ex){ ModelAndView mView=new ModelAndView(); mView.setViewName("error"); mView.addObject("exception",ex); System.out.println("Controller内部异常处理"); return mView; } @RequestMapping("/testExection") public String testExection(@RequestParam(value="id") Integer id){ System.out.println(10/id); return "success"; }

 


二、处理全局异常---------定义一个异常处理了 package com.neuedu.springmvc.execption; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; /* * 项目名称:springmvc-03 * @author:wzc * @date 创建时间:2017年8月24日 下午3:31:09 * @Description:处理全局异常的类 * @parameter * */ @ControllerAdvice public class MyExcption { @ExceptionHandler(value={ArithmeticException.class}) public String handlExecution(Exception ex){ return "error"; } }

 


条件: 1.加上<mvc:annotation-driven>标签: 2.在当前Handler中定义由@ExceptionHandler注解修饰的方法,用于处理异常信息! 注意: 1.@ExceptionHandler方法修饰的入参中可以加入Exception类型的参数,该参数即对应发生的异常信息 2.@ExceptionHandler方法的入参中不能传入Map.若希望把异常信息传到页面上,需要使用ModelAndView作为方法的返回值。 3.@ExceptionHandler 注解定义的方法优先级问题: 例如发生的是NullPointerException,但是声明的异常有 RuntimeException 和 Exception, 此候会根据异常的最近 继承关系找到继承深度最浅的那个 @ExceptionHandler 注解方法,即标记了 RuntimeException 的方法 4.ExceptionHandlerMethodResolver 内部若找不 到@ExceptionHandler 注解的话,会找@ControllerAdvice 中的@ExceptionHandler 注解方法  
三、在配置中配置异常处理   <!-- 配置异常处理 --> <!-- 配置异常处理 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <!-- 处理的错误异常类型,以及跳转的页面 --> <prop key="java.lang.ArithmeticException">error</prop> </props> </property> </bean>

 

转载于:https://www.cnblogs.com/Actexpler-S/p/7424800.html

最新回复(0)