SpringBootロジック異常統一治療

建築プロジェクト

我々別として異常抽出コアロジック処理部jarの他のモジュール参照の供給、プロジェクトの作成parentアイテムがpom.xml公共使用に依存するために加え、次のように構成が示されています:

<依存性> 
        <! -ロンボク- > 
        <依存> 
            <groupIdを> org.projectlombok </ groupIdを> 
            <たartifactId>ロンボク</たartifactId> 
            <オプション>  </オプション> 
        </依存関係> 
        <! -测试模块依赖- > 
        <依存> 
            <groupIdを> org.springframework.boot </ groupIdを> 
            <たartifactId>春・ブート・スターターテスト</たartifactId> 
            <スコープ>テスト</スコープ> 
        </依存関係> 
        <! -ウェブ依赖- > 
        <依存> 
            <groupIdを> org.springframework.boot </のgroupId> 
            <たartifactId>春・ブート・スターター・ウェブ</たartifactId>/ groupIdを> 
        </依存関係> 
</依存関係>

 

プロジェクトは他に作成された後.ideaimlpom.xml保持は、他のものは削除されます。

例外処理コアサブモジュール

/ ** 
 * @author WGR 
 - * @Create 2019年9月7日15時06分
 * / 
パブリック クラス OssException 延びのRuntimeExceptionを実装シリアライズ{ 
    プライベート 静的 最終的な ロングのserialVersionUID = 1L ; 
    プライベートオブジェクトは、[] errFormatArr; 
    公共OssExceptionを(メッセージ文字列、...オブジェクトobj){
         スーパー(メッセージ);
         この .errFormatArr = OBJ; 
    } 
    // 追加の2つのコンストラクタは、実用的なニーズのために、そう添加
    公衆OssException(文字列メッセージ、Throwableの原因){
         スーパー(メッセージ、原因)。
    } 
    公共OssException(Throwableの原因){
         スーパー(原因)。
    } 
    パブリックオブジェクト[] getErrFormatArr(){
         リターンerrFormatArr。
    } 
    公共 ボイドsetErrFormatArr(オブジェクト[] errFormatArr){
         この .errFormatArr = errFormatArr。
    } 
}

 

制服の定義は、結果を返します

SLF4J @ 
@ControllerAdvice 
パブリック クラスOssExceptionHandler { 
    @ExceptionHandler(値 =例外。クラス
    @ResponseBody 
    公共のModelAndViewハンドル(例外EX){
         // 、ノーキャッチ例外を返すために提供さFastJsonJsonView FastJsonビュー使用 
        FastJsonJsonView =ビュー新新)(FastJsonJsonViewを。
        結果R&LT = NULL ;
         IF(EX instanceofの OssException){ // 異常検出から 
            結果= M.getErrR(ex.getMessage()、((OssException)EX).getErrFormatArr())。 
        }  IF(EX のinstanceof MaxUploadSizeExceededException){ // スプリングファイルアップロードサイズ異常 
            結果が= M.getErrR( "exception.maxUploadSizeExceededException"、PropUtil.getInteger( "upload.maxSize" )); 
        } そう IF(EX instanceofの DataAccessException){ // JDBC例外の春 
            = M.getErrR( "exception.dataAccessException"の結果;)
        }  { // 他の未知の異常が 
            = M.keyErrR( "exception.other"の結果); 
        } 
        // 例外で開発プロセス印刷を情報は、製造プロセスがシャットダウンすることができ
        た場合(!result.getErrCode()= 60113)が{ // 20181225ログインセッションが印刷していない、有効期限が切れる 
            ストリングスタックトレース= StackUtil.getStackTrace(EX); 
            log.error( "----->" + スタックトレース); 
        } 
        // コンピュータ側、異常情報パッケージ20181128セキュリティテスト問題がクローズ詳細異常情報が必要
         // IF(WebUtil.isComputer())result.setErrdetail(スタックトレース)を、 
        result.setErrdetail(ex.getMessage()); // 20190128異常情報参加するには、単純な必要性
        view.setAttributesMap(結果を); 
        返す 新しい新しいのModelAndView(ビュー); 
    } 
}

 

様々な理由から、我々は唯一のコードの一部を置くことができ、アイデアを提供することができます。

おすすめ

転載: www.cnblogs.com/dalianpai/p/11756148.html