SpringMVC自定義全域性異常處理器
阿新 • • 發佈:2018-12-19
- 第一步:自定義異常類
package com.cyn.ssm.exception; /* * 自定義異常類 */ public class MyException extends Exception { //錯誤訊息 private String msg; public MyException() { super(); } public MyException(String msg) { super(); this.msg = msg; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
- 第二步:自定義全域性異常處理器
package com.cyn.ssm.exception; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; /* * 自定義全域性異常處理器 */ public class UserException implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception e) { //記錄日誌 e.printStackTrace(); //錯誤訊息 String msg = "很抱歉,系統發生異常了,請聯絡管理員"; //如果為自定義異常,顯示自定義訊息 if(e instanceof MyException){ msg = ((MyException) e).getMsg(); } //響應使用者錯誤提示 ModelAndView model = new ModelAndView(); //返回錯誤訊息 model.addObject("msg", msg); //響應錯誤提示頁面 model.setViewName("404"); return model; } }
- 第三步:在springmvc的核心配置檔案中配置異常處理器----目的是將編寫的異常處理器通過注入spring容器中來告知springmvc
<!-- 配置全域性異常處理器 -->
<bean class="com.cyn.ssm.exception.UserException"/>
- 第四步:編寫異常資訊的提示介面404.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>異常提示</title> </head> <body> ${msg} </body> </html>
- 第五步:測試