一、SpringMVC 異常處理
1.在SpringMVC.xml文件中註冊 org.springframework.web.servlet.handler.SimpleMappingExceptionResolver
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<!-- 異常映射 -->
<property name="exceptionMappings">
<props> <!-- 設置映射的異常類型 -->
<prop key="java.lang.ArrayIndexOutOfBoundsException">error</prop>
</props>
</property>
</bean>
2.編寫相關實現類
@ControllerAdvice // 必須添加註解
public class MyExceptionHandler {
@ExceptionHandler({ArithmeticException.class}) // 設置異常處理器,定義處理相關的異常
public ModelAndView ExceptionHandler(Exception e) {
System.out.println("俺是MyExceptionHandler");
System.out.println("出異常了 " +e);
ModelAndView model = new ModelAndView("error"); // 使用ModelAndView 可以將異常信息顯
// 示到前端頁面
model.addObject("exception",e);
return model;
}
}
注意:
/**
* 異常處理相關
*1. @ExceptionHandler 註解,可以加入Exception類型的參數,更精準的匹配發生異常時,處理對象。
*2. @ExceptionHandler 該註解方法中不能傳入 Map<String,Object>參數,想要異常信息傳遞頁面,需要用ModelAnView。
*3. @ExceptionHandler 標記的方法有優先級。
*4. @ControllerAdvice 該註解作用於類上,如果在當前類中找不到處理異常的方法,那麼就會去標記了@ControllerAdvice的類中尋找
* @ControllerAdvice註解 標記的方法,去處理異常。
*/
/**
* 自定義Exception
* 1.添加@ExceptionHandler ,設置解析的相關exception類型 @ExceptionHandler({ArithmeticException.class})
* 2. 編寫方法,可以實現ModelAndView 傳入相關error頁面,並設置錯誤信息,顯示在頁面並返回。
* @param i
* @return
*/