1. 程式人生 > >SpringMVC異常處理

SpringMVC異常處理

測試 new 前端 tps esp pack instance extend auto

1.1. 異常處理思路

系統中異常包括兩類:預期異常和運行時異常RuntimeException,前者通過捕獲異常從而獲取異常信息,後者主要通過規範代碼開發、測試通過手段減少運行時異常的發生。

系統的daoservicecontroller出現都通過throws Exception向上拋出,最後由springmvc前端控制器交由異常處理器進行異常處理,如下圖:技術分享圖片

------------------------------------------------------------------------------------------------------------------------

/**

* 異常處理器的自定義的實現類

* @author lx

*

*/

public class CustomExceptionResolver implements HandlerExceptionResolver{

public ModelAndView resolveException(HttpServletRequest request,

HttpServletResponse response, Object obj,

Exception e) {

// TODO Auto-generated method stub 發生異常的地方 Serivce層 方法 包名+類名+方法名(形參) 字符串

//日誌 1.發布 tomcat war Eclipse 2.發布Tomcat 服務器上 Linux Log4j

ModelAndView mav = new ModelAndView();

//判斷異常為類型

if(e instanceof MessageException){

//預期異常

MessageException me = (MessageException)e;

mav.addObject("error", me.getMsg());

}else{

mav.addObject("error", "未知異常");

}

mav.setViewName("error");

return mav;

}

}

----------------------------------------------------------

package com.itheima.springmvc.exception;

public class MessageException extends Exception{

private String msg;

public MessageException(String msg) {

super();

this.msg = msg;

}

public String getMsg() {

return msg;

}

public void setMsg(String msg) {

this.msg = msg;

}

}

-----------------------------------------------------------------------------------------------

1.1. 異常處理器配置

springmvc.xml中添加:

<!-- 配置全局異常處理器 -->

<bean

id="customHandleException" class="cn.itcast.ssm.exception.CustomHandleException"/>

SpringMVC異常處理