SpringMVC(三)异常处理

一、在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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值