异常处理

方式一:实现HandlerExceptionResolver,可以对异常进行统一处理
例如:
package cn.exception;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
/**
 * springmvc实现HandlerExceptionResolver接口统一处理异常
 * @author lenovo
 *方式一:实现HandlerExceptionResolver 这种方式在方式二就没用上,里面原因也不了解
 *下面的@Component注解就是将此类交给spring来管理了,没有被处理(try{}catch(){})的异常会由这个类来统一处理。
 */
@Component
public class CommonException  implements HandlerExceptionResolver{
     
    @Override
    public ModelAndView resolveException(HttpServletRequest request,
            HttpServletResponse response, Object handler, Exception ex) {
        ModelAndView mv = new ModelAndView();
        //先设置出现异常后的默认错误页面
        mv.setViewName("error1");
        //ex是异常对象
        mv.addObject("ex",ex);
        
        if(ex instanceof MyException){
            mv.setViewName("error1");
        }else if(ex instanceof Exception){
            mv.setViewName("error2");
        }
        
        return mv;
    }

}


方式二:在springmvc上配置全局异常(配置文件的方式),没有被处理(try{}catch(){})的异常会由这个配置来统一处理。

 <!-- Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver-全局异常配置 start -->     
      <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
       <!--  默认的错误信息页面-->
        <property name="defaultErrorView" value=">error2"/>
        <property name="exceptionMappings">
            <props>
                <!-- 自定义的异常类MyException error2是出现MyException异常的页面 -->
                <prop key="cn.exception.MyException">error2</prop> 
                <!-- 空指针异常 error_spring_null是出现空指针异常的页面-->
               <prop key="java.lang.NullPointerException">error_spring_null</prop>  
            </props>
        </property>
    </bean>    
     <!-- 全局异常配置 end -->   


package cn.exception;

public class MyException extends RuntimeException {

    public MyException(String string){
        super(string);
    }

}

方式三:自己try{}catch(){}做相应的处理。自己处理过的异常就不会被以上两种方式处理了。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值