1.自定義異常信息類 通過構(gòu)造函數(shù)來實(shí)現(xiàn)異常信息的接收
public class CustomException extends Exception {
//異常信息
PRivate String message;
public CustomException (String message){
super(message);
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
2.通過實(shí)現(xiàn)HandlerExceptionResolver的接口來實(shí)現(xiàn)異常處理 流程:先是解析異常,再判斷是否是系統(tǒng)自定義異常,如果是就直接拋出異常,如果不是自定義異常就直接構(gòu)造一個(gè)自定義的異常類型(信息為“未知錯(cuò)誤,請與管理員聯(lián)系!”)
//不是自定義餓異常多半是運(yùn)行異常,盡量在測試的時(shí)候就解決掉
public class CustomExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) {
CustomException customException=null;
if(ex instanceof CustomException ){
customException = (CustomException)ex;
}else{
customException = new CustomException("未知錯(cuò)誤,請與管理員聯(lián)系!");
}
//獲取錯(cuò)誤信息
String message = customException.getMessage();
System.out.println("異常信息:"+message);
//創(chuàng)建ModelAndView對象
ModelAndView modelAndView = new ModelAndView();
//把錯(cuò)誤信息填充到request域中
modelAndView.addObject("message", message);
//傳入到頁面
modelAndView.setViewName("error");
return modelAndView;
}
}
3.在spring 的xml文件中配置 class 是CustomExceptionResolver的路徑
<!-- 異常處理器 -->
<bean class="com.menglin.ssm.exception.CustomExceptionResolver"></bean>
4.開始測試 (需求:當(dāng)在查詢的時(shí)候如果信息不存在的時(shí)候就拋出異常 )
/**
* 根據(jù)id來查詢
*/
@Override
public ItemsCustom findItemsCustomById(Integer id) throws Exception {
ItemsCustom itemsCustom = null;
Items items = itemsMapper.selectByPrimaryKey(id);
if(items==null){
throw new CustomException("商品信息不存在!");
}else{
itemsCustom = new ItemsCustom();
BeanUtils.copyProperties(items, itemsCustom);
}
return itemsCustom;
}
5.錯(cuò)誤信息的展示
8{U}E82ACDGS(Z}%~C.png)


新聞熱點(diǎn)
疑難解答
圖片精選