真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringMvc異常處理器怎么實(shí)現(xiàn)

這篇文章主要講解了“SpringMvc異常處理器怎么實(shí)現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“SpringMvc異常處理器怎么實(shí)現(xiàn)”吧!

創(chuàng)新互聯(lián)公司是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的服務(wù)器托管服務(wù)

SpringMvc 異常處理器

簡介

SpringMvc 在處理請求過程中出現(xiàn)異常信息由異常處理器進(jìn)行處理,自定義異常處理器可以實(shí)現(xiàn)一個(gè)系統(tǒng)的異常處理邏輯。

異常理解

異常包含編譯時(shí)異常和運(yùn)行時(shí)異常,其中編譯時(shí)異常也叫預(yù)期異常。運(yùn)行時(shí)異常只有在項(xiàng)目運(yùn)行的情況下才會(huì)發(fā)現(xiàn),編譯的時(shí)候不需要關(guān)心。

運(yùn)行時(shí)異常,比如:空指針異常、數(shù)組越界異常,對于這樣的異常,只能通過程序員豐富的經(jīng)驗(yàn)來解決和測試人員不斷的嚴(yán)格測試來解決。

編譯時(shí)異常,比如:數(shù)據(jù)庫異常、文件讀取異常、自定義異常等。對于這樣的異常,必須使用 try catch代碼塊或者throws關(guān)鍵字來處理異常。

異常處理思路

系統(tǒng)中異常包括兩類:預(yù)期異常(編譯時(shí)異常)和運(yùn)行時(shí)異常RuntimeException,前者通過捕獲異常從而獲取異常信息,后者主要通過規(guī)范代碼開發(fā)、測試等手段減少運(yùn)行時(shí)異常的發(fā)生。

系統(tǒng)的dao、service、controller出現(xiàn)都通過throws Exception向上拋出,最后由SpringMvc前端控制器交給異常處理器進(jìn)行異常處理,如下圖:

SpringMvc異常處理器怎么實(shí)現(xiàn)

 全局范圍只有一個(gè)異常處理器。

自定義異常類

第一步:CustomException.java

package com.cyb.ssm.exception;

/**
 * 自定義編譯時(shí)異常
 * 
 * @author apple
 *
 */
public class CustomException extends Exception {
    private String msg;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public CustomException(String msg) {
        super();
        this.msg = msg;
    }
}

第二步:CustomExceptionResolver.java(重點(diǎn))

package com.cyb.ssm.resolver;

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

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

import com.cyb.ssm.exception.CustomException;

public class CustomExceptionResolver implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
            Exception ex) {
        String message="";
        // 異常處理邏輯
        if (ex instanceof CustomException) {
            message = ((CustomException) ex).getMsg();
        } else {
            message="未知錯(cuò)誤";
        }
        ModelAndView mv=new ModelAndView();
        mv.setViewName("error");
        mv.addObject("message", message);
        return mv;
    }
}

第三步:在springmvc.xml中加入bean



    
    
    
    
    
        
        
    
    
    
        
            
                
                
            
        
    
    
    

第四步:jsp錯(cuò)誤頁面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




錯(cuò)誤頁面


    ${message }

第五步:測試類

@RequestMapping("queryItem")
    public ModelAndView queryItem() throws CustomException {
        //查詢數(shù)據(jù)庫,用靜態(tài)數(shù)據(jù)模擬
        List itemList = Service.queryItemList();
        ModelAndView mvAndView = new ModelAndView();
        mvAndView.addObject("itemList", itemList);
        //設(shè)置視圖(邏輯路徑)
        mvAndView.setViewName("item/item-list");
        if (true) {
            throw new CustomException("我是自定義異常類");
        }
        return mvAndView;
    }

SpringMvc異常處理器怎么實(shí)現(xiàn)

感謝各位的閱讀,以上就是“SpringMvc異常處理器怎么實(shí)現(xiàn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對SpringMvc異常處理器怎么實(shí)現(xiàn)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


標(biāo)題名稱:SpringMvc異常處理器怎么實(shí)現(xiàn)
標(biāo)題來源:http://weahome.cn/article/iejpop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部