統一異常の処理


システムから放出されたすべての例外を、統合された例外処理クラスで処理するには、例外タイプに基づいて処理します.
統一異常処理のクラスは何ですか?
フロントエンドコントローラ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;
    }