springmvc異常處理器

異常處理器就是把異常加工一下返回給用戶,如果後臺報錯了可以給用戶顯示成服務器異常

創建一個用戶存儲信息的實體類

public class SysException extends Exception {
    //存儲提示信息
    private String message;

    @Override
    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public SysException(String message) {
        this.message = message;
    }
}

創建一個異常處理類 


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

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

/**
 * 異常處理器
 */
public class SysExceptionResolver implements HandlerExceptionResolver {
    /**
     * 處理異常的邏輯
     * @param request
     * @param response
     * @param o
     * @param ex
     * @return
     */
    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object o, Exception ex) {
        //準備獲取異常對象
        SysException e = null;
        if (ex instanceof  SysException){
            e = (SysException) ex;
        }else{
            e = new SysException("系統正在維護....");
        }
        //創建對象
        ModelAndView mv = new ModelAndView();
        mv.addObject("errorMsg",e.getMessage());
        mv.setViewName("error");
        return mv;
    }
}

然後在controller裏這樣調用

 @RequestMapping("testException")
    public String testException() throws SysException {
        try {
            int a = 10/0;
        } catch (Exception e) {

            e.printStackTrace();
            throw new SysException("查詢所有的用戶出現了錯誤");
        }
        return"success";
    }

當然還有一步是在springmvc配置一下他的bean

<bean id="sysExceptionResolver" class="cn.itcast.exception.SysExceptionResolver"/>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章