統一異常の処理
4609 ワード
システムから放出されたすべての例外を、統合された例外処理クラスで処理するには、例外タイプに基づいて処理します.
統一異常処理のクラスは何ですか?
フロントエンドコントローラDispatcherServiceletは、HandlerMappingを行い、HandlerAdapterを呼び出してHandlerを実行する過程で、異常が発生した場合、この統合異常処理クラスを呼び出す.もちろん,このクラスはHandlerExceptionResolverインタフェースを実装してこそ,統合例外処理クラスと呼ぶことができる.
1.統合例外プロセッサクラスの定義
2.統合例外プロセッサの構成
3.テスト放出異常は、統合異常処理装置によって取得される
コントロールメソッド、サービスメソッド、dao実装クラスで例外を放出することができ、dao、サービス、コントロールが異常に遭遇した場合、すべて例外を上向きに放出し、メソッドが異常throws Exceptionを上向きに放出することを要求します.
ItemsServiceImpl.JAvaのfindItemsByIdメソッドには、次の内容が追加されています.
統一異常処理のクラスは何ですか?
フロントエンドコントローラDispatcherServiceletは、HandlerMappingを行い、HandlerAdapterを呼び出してHandlerを実行する過程で、異常が発生した場合、この統合異常処理クラスを呼び出す.もちろん,このクラスはHandlerExceptionResolverインタフェースを実装してこそ,統合例外処理クラスと呼ぶことができる.
1.統合例外プロセッサクラスの定義
/**
* Created by codingBoy on 16/11/18.
*
*/
public class CustomExceptionResolver implements HandlerExceptionResolver
{
// DispatcherServlet HandlerMapping、
// HandlerAdapter Handler ,
// handler Handler, HandlerMethod
//ex
@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response,
Object handler, Exception ex) {
//
ex.printStackTrace();
//
// CustomException , ,
//
String message=null;
CustomException customException=null;
// ex ,
if (ex instanceof CustomException)
{
customException= (CustomException) ex;
}else {
customException=new CustomException(" ");
}
//
message=customException.getMessage();
request.setAttribute("message",message);
try {
//
request.getRequestDispatcher("/WEB-INF/jsp/error.jsp").forward(request,response);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return new ModelAndView();
}
}
2.統合例外プロセッサの構成
<bean class="exception.CustomExceptionResolver">bean>
3.テスト放出異常は、統合異常処理装置によって取得される
コントロールメソッド、サービスメソッド、dao実装クラスで例外を放出することができ、dao、サービス、コントロールが異常に遭遇した場合、すべて例外を上向きに放出し、メソッドが異常throws Exceptionを上向きに放出することを要求します.
ItemsServiceImpl.JAvaのfindItemsByIdメソッドには、次の内容が追加されています.
@Override
public ItemsCustom findItemsById(int id) throws Exception {
Items items=itemsMapper.selectByPrimaryKey(id);
// ,
if (items==null)
{
throw new CustomException(" ");
}
// , , controller
// ,
ItemsCustom itemsCustom=new ItemsCustom();
// items itemsCustom
BeanUtils.copyProperties(items,itemsCustom);
return itemsCustom;
}