全局異常映射:
<global-exception-mappings> <exception-mapping result="error" exception="java.lang.Exception"/> </global-exception-mappings> |
局部異常映射:
<exception-mappings> <exception-mapping result="error" exception="java.lang.Exception"/> </exception-mappings> |
exception: 異常類型
result:指定Action出現該異常時,系統轉入result屬性所指向的結果。
異常信息的輸出:
1.業務異常類
1.所以業務異常類派生于BusinessException基類。
2.原則上,要進行相同處理的異常分為一類,用ERROR_CODE標識不同。
3.出錯信息統一寫在errors.properties,以ERROR_CODE為主鍵,支持i18N,由基類提供默認的getMessage()函數。
參考BussinessException.java和OrderException.java。
2.Servlet規范里的異常控制
2.1按error-code統一定義錯誤頁面
<@ errorPage="error.jsp">3.Spring MVC里的異常控制
spring-mvc可在xxx-serverlet.xml里定義default和 按Excepiton類型影射的錯誤頁面, 和Servlet規范比,主要作了Spring特色的JSP路徑轉向和日志記錄.參見bookstore-servlet.xml
error.jsp會同時處理jsp,servlet,和spring拋過來的異常
其中jsp的異常在exception 變量中.
servlet的異常在(Exception)request.getAttribute("javax.servlet.error.exception")
spring的異常在(Exception) request.getAttribute("exception")
使用 (String) request.getAttribute("javax.servlet.error.request_uri")獲得 request_uri
使用 logger.error(exception.getMessage(), exception); 記錄整個異常棧
名稱: ?4C.ESL | .↗Evon
口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
mail: 聯系我