springMVC3學習(八)--全局的異常處理
阿新 • • 發佈:2017-08-12
== err println url html ror 不同的 處理程序 源代碼下載
這裏基本的類是SimpleMappingExceptionResolver類,和他的父類AbstractHandlerExceptionResolver類。
顯示錯誤的jsp頁面(已error.jsp為例)
測試URL: http://localhost:8080/spring_exception/null
在springMVC的配置文件裏:
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView"> <value>/error</value><!-- 表示當拋出異常但沒有在exceptionMappings裏面找到相應的異常時 返回名叫error的視圖--> </property> <property name="defaultStatusCode" value="404"/><!-- 表示在發生異常時默認的HttpServletResponse的返回碼,默認是404--> <property name="statusCodes"><!-- 定義在發生異常時視圖跟返回碼的相應關系 --> <props> <!-- 表示在發生NumberFormatException時返回視圖number,然後這裏定義發生異常時視圖number相應的HttpServletResponse的返回碼是500 --> <prop key="number">500</prop> <prop key="null">503</prop> </props> </property> <property name="exceptionMappings"> <props> <prop key="NumberFormatException">number</prop><!-- 表示當拋出NumberFormatException的時候就返回名叫number的視圖--> <prop key="NullPointerException">null</prop> </props> </property> </bean>
這裏基本的類是SimpleMappingExceptionResolver類,和他的父類AbstractHandlerExceptionResolver類。
你也能夠實現HandlerExceptionResolver接口,寫一個自己的異常處理程序.
通過SimpleMappingExceptionResolver我們能夠將不同的異常映射到不同的jsp頁面(通過exceptionMappings屬性的配置)。
同一時候我們也能夠為全部的異常指定一個默認的異常提示頁面(通過defaultErrorView屬性的配置),
假設所拋出的異常在exceptionMappings中沒有相應的映射,則Spring將用此默認配置顯示異常信息。
Login.java測試類
import java.io.File; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class Login { @RequestMapping("/null") public void testNullPointerException() { File file = null; // 空指針異常。返回定義在SpringMVC配置文件裏的null視圖 System.out.println(file.getName()); } @RequestMapping("/number") public void testNumberFormatException() { // NumberFormatException,返回定義在SpringMVC配置文件裏的number視圖 Integer.parseInt("abc"); } @RequestMapping("/default") public void testDefaultException() { if (1 == 1) // 因為該異常類型在SpringMVC的配置文件裏沒有指定,所以就會返回默認的exception視圖 throw new RuntimeException("Error!"); } }
顯示錯誤的jsp頁面(已error.jsp為例)
<body> <% Exception e = (Exception)request.getAttribute("exception"); out.print(e.getMessage()); %> </body>
測試URL: http://localhost:8080/spring_exception/null
http://localhost:8080/spring_exception/number
http://localhost:8080/spring_exception/default
項目源代碼下載:http://download.csdn.net/detail/itmyhome/7382465
springMVC3學習(八)--全局的異常處理