SpringMvc全局異常處理器配置


為什么需要全局異常處理器?

在程序開發中,我們的程序無法避免的會碰到各種異常情況,配置全局異常處理可以方便開發人員編寫和管理異常處理的代碼。

Springmvc的全局異常處理配置Demo

第一步:自定義異常類如CustomException類繼承Exception類

public class CustomException extends Exception{

private String message;

public CustomException(String message){
this.message = message;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}
}

第二步:編寫異常處理類,需要實現HanlderExceptionResolver接口

public class CustomExceptionResolver implements HandlerExceptionResolver{

@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) {
// TODO Auto-generated method stub
CustomException customException = null;
if(ex instanceof CustomException){
customException = (CustomException)ex;
}else{
customException = new CustomException("未知錯誤");
}
String message = customException.getMessage();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("message",message);
modelAndView.setViewName("fail");
return modelAndView;
}
}

第三步:在spring的配置文件中注冊全局異常處理:

<!-- 配置全局異常處理器 ,只要實現了HandlerExceptionResolver接口的類就是全局異常處理器-->
<bean class="com.readboy.ssm.exception.CustomExceptionResolver" />

在程序中使用異常處理器:

在代碼需要拋出異常的地方使用如throw new CustomException("該字段不能為空");即可拋出異常
一般來說,與業務功能相關的的異常,在Service中拋出,如增刪改查
與業務功能無關的異常,在Controller中拋出,如頁面某個輸入框的輸入不能為空


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: