ssm框架異常處理 使用實現接口HandlerExceptionResolver的方式


一,異常種類

    1,數據庫異常

    2,系統異常,比如一些低級異常,如:空指針異常,內存溢出異常,數據庫連接異常,這些都不用顯示給用戶看

    3,應用異常,即自定義異常

二,異常處理原則

    1,避免出現大的try塊

    2,細化異常的類型,不要不管什么類型的異常都寫成Excetpion。

    3,不要把自己能處理的異常拋給別人,不要忽略捕獲的異常,捕獲到后要么處理,要么轉譯,要么重新拋出新類型的異常

   4、如果對catch塊盡量保持一個塊捕獲一類異常,在catch語句中盡可能指定具體的異常類型,必要時使用多個catch。

三,處理步驟

  1.  新建一個類繼承Exception,新建一個屬性用於保存異常信息如下:
    package com.zuxia.exception;
    
    public class Exceptions extends Exception{
        public String ex;
    
        public String getEx() {
            return ex;
        }
    
        public void setEx(String ex) {
            this.ex = ex;
        }
        
        public Exceptions(String ex){
            super();
            this.ex=ex;
        }
        public Exceptions(){
            super();
        }
    }

     

    2.新建一個類實現HandlerExceptionResolver接口,用於自定義異常信息如下:

package com.zuxia.exception;

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

import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

public class ExceptionResolver implements HandlerExceptionResolver{

    @Override
    public ModelAndView resolveException(HttpServletRequest arg0,
            HttpServletResponse arg1, Object arg2, Exception arg3) {
        String ex=null;
        if(arg3 instanceof Exceptions){
            ex=((Exceptions)arg3).getEx();
        }else{
            ex="未知錯誤";
        }
        
        ModelAndView mv=new ModelAndView();
        mv.addObject("erro", ex);
        mv.setViewName("err.jsp");
        return mv;
    }


springmvc中配置自定義異常類,如下:
<!-- 異常解析器 -->
    <bean class="com.zuxia.exception.ExceptionResolver"></bean>
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM