豆を追加
<! - 統一例外処理- > < 豆上記ID = "exceptionHandlerの" クラス= "com.ak1ak1.common.shiro.ExceptionHandler" />
Javaコード
インポートにjava.io.IOException; インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; 輸入org.slf4j.Logger。 輸入org.slf4j.LoggerFactory; 輸入org.springframework.http.HttpStatus。 輸入org.springframework.http.MediaType。 輸入org.springframework.web.servlet.HandlerExceptionResolver; 輸入org.springframework.web.servlet.ModelAndView。 輸入com.ak1ak1.utils.AjaxResult。 輸入com.alibaba.fastjson.JSON。 / ** * * @authorのhejie * @date 2019年9月18日 * @desc统一处理异常 * / パブリック クラス exceptionHandlerの実装HandlerExceptionResolver { 保護 ファイナルロガーロガー= LoggerFactory.getLogger(のgetClass()); @Override 公共のModelAndView resolveException(HttpServletRequestのリクエスト、レスポンスHttpServletResponseの、ハンドラオブジェクト、例外EX){ logger.error (ex.getMessage()、EXは); // あなたが例外をキャッチしない場合は統一されたシステムは、エラー例外が返され、 返さ outJson(要求を、レスポンスは、AjaxResult.error( "異常なシステムでは、管理者に連絡してください!" )); } プライベートのModelAndView outJson (HttpServletRequestのリクエスト、HttpServletResponseの応答、AjaxResult AJAX){ ミュージックビデオのModelAndView = 新しい新しいのModelAndViewは(); / * 応答を返すために使用される * / response.setStatus(HttpStatus.OK.value()); // 設定されたステータスコード response.setContentType(MediaType.APPLICATION_JSON_VALUE); // ContentTypeを設定し response.setCharacterEncoding( "UTF-8"); // 歪みを回避する response.setHeaderを( "のCache-Control"、 "キャッシュ-NO、MUST-再検証" ); 試み{ response.getWriter()ライト(JSON.toJSONString(アヤックス)); } キャッチ(IOExceptionをE){ logger.error(「クライアント通信例外:「+e.getMessage()、E)。 } 戻りMVと、 } }