zoukankan      html  css  js  c++  java
  • Spring异常处理实践

    参考文章:http://blog.csdn.net/yangcheng33/article/details/77104561

    spring中带有的简单异常处理器

    在spring mvc的xml中如下配置:

    <!-- springmvc提供的简单异常处理器 -->
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
         <!-- 定义默认的异常处理页面 -->
        <property name="defaultErrorView" value="default_error"/>
        <!-- 定义异常处理页面用来获取异常信息的变量名,也可不定义,默认名为exception --> 
        <property name="exceptionAttribute" value="ex"/>
        <!-- 定义需要特殊处理的异常,这是重要点 --> 
        <property name="exceptionMappings">
            <props>
                <prop key="com.exception.CustomException">error</prop>
            </props>
            <!-- 还可以定义其他的自定义异常 -->
        </property>
    </bean>

    此方法比较简单,容易扩展自定义异常和展示页面。
    注意:
    1.关于上述需要跳转的error jsp相关的地址配置和controller中使用的Viewname一致。否则会找不到。
    2.try catch和throws导致的区别

    @RequestMapping("/gothrow")
    public ModelAndView hello() throws CustomException{
        if(1>0){
                throw new CustomException("故意");
        }
    
        ModelAndView mv = new ModelAndView(); 
        mv.setViewName("index");
        return mv;
    }
    
    @RequestMapping("/trycatch")
    public ModelAndView hello2(){
        if(1>0){
                try {
                    throw new CustomException("故意");
                } catch (CustomException e) {
                    e.printStackTrace();
                }
        }
    
        ModelAndView mv = new ModelAndView(); 
        mv.setViewName("index");
        return mv;
    }

    第一个方法throws出去,一直往外抛;但是在try中就会需要自己在catch中处理,抛不到spring框架来处理。所以,throws会走spring mvc的异常处理,跳转错误页面。但是try不会跳转到相关的页面。

    未完待续…

  • 相关阅读:
    Promise小结 ES6异步编程
    XLNet模型
    BERT模型
    Transformer模型
    注意力机制(Attention Mechanism)
    序列到序列模型(seq2seq)
    【Pandas-附件2】查询手册
    【Pandas-附件1】读取excle和csv具体函数
    【pandas-21】实践-同比和环比指标
    【pandas-20】实践(泰坦尼克沉船事件)-特征处理
  • 原文地址:https://www.cnblogs.com/Kevin-1992/p/12608386.html
Copyright © 2011-2022 走看看