SpringMVC 異常處理

一、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
	 */

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章