グローバル例外ハンドラ:シリーズのコードきれいな方法の1をSpringBoot

入門

オンラインこの文はあなたに共有に非常に興味深いです参照、この文は次のとおりです。あなたは、景色を見て本を、読んで音楽を聴いて、通りを歩いて愛し隠されたコードを書きました人々それは冗談ですが、それはまた、あなたが自己の要求と激励のために書くことをクリーンでエレガントなコードを反映しているが。

開始からBenpianが、私はの使用について書きますSpringBoot練習のコードをきれいにする方法を、記事のプロジェクトの開発のシリーズ。不正なコードがないだけでBUG、百チームの発展と拡大を助長されていません。そのため、クリーンでエレガントなコードの作成は、将来の拡張にも資する開発チームの効率を提供することはできません。以下、より考えて、より多くの思考をコーディングコード少ないです

  • グローバル例外ハンドラ
  • 概要

まず、グローバル例外ハンドラ

図1に示すように、ハンドル例外@RestControllerAdviceアノテーションを使用して
(1)定義された例外クラス

public class ProgramException extends RuntimeException{

    //错误码
    private String code;

    //错误信息
    private String msg;

    public ProgramException(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

(2)グローバルレスポンスオブジェクトを定義

public class ReponseData {

    //错误码
    private String code;

    //错误信息
    private String msg;

    //响应数据
    private Object data;

    public ReponseData(String code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    
  	public ReponseData(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

(3)グローバル例外ハンドラを定義します

@RestControllerAdvice
public class BusinessServiceExceptionHandler {
private Logger logger = LoggerFactory.getLogger(BusinessServiceExceptionHandler.class);
	
	@ExceptionHandler(ProgramException.class)
	@ResponseStatus(ProgramException.class)
	public ResponseData handleException(ProgramException e, HttpServletRequest req){
	return new ResponseData(e.getCode(), e.getMsg());
	}
}

比較は統一繧フロントエンドを提供するために、この方法では、単純な、分離の特に今フロントエンド、インターフェースの後端部を使用することを推奨例外が発生した場合、エラーメッセージが統一され、例外ハンドラにより返されてもよいです。

2、グローバルな例外処理を使用してSimpleMappingExceptionResolver

@Configuration
public class GlobalExceptionResolver extends SimpleMappingExceptionResolver{
	
private static Logger log = LoggerFactory.getLogger(GlobalExceptionResolver.class);
	
	public GlobalExceptionResolver() {
		setOrder(0);
	}

	

第二に、要約

クリーンコードは、いくつかのシステム・レベルなど、実際のプロジェクトの事業コード、だけでなく、。システムレベルのコードのクリーン度に属するグローバル例外ハンドラ。私たちは都市よりも多くの私たちのプロジェクトを行った場合、その後、同様のグローバル例外ハンドラ、インターセプターなどは、市の排水システム、ケーブル管理などに相当します。これらの施設は、都市全体の機能に直接影響して配置しました。そして、プロジェクトレベル、システムレベルとクリーンなコードはプロジェクトがより効率的に実行できるようにすることです。

发布了88 篇原创文章 · 获赞 49 · 访问量 10万+

おすすめ

転載: blog.csdn.net/Diamond_Tao/article/details/93981488