私は、もし-elseブロックで例外を投げるべきでしょうか?

王の賞賛:

ここでは、コードは次のようになります。

public Response getABC(Request request) throws Exception {
    Response res = new Response();
    try {
        if (request.someProperty == 1) {
            // business logic
        } else {
           throw new Exception("xxxx");
        }
    } catch (Exception e) {
        res.setMessage(e.getMessage); // I think this is weird
    }
    return res;
}

このプログラムは正常に動作しています。私はそれを再設計する必要があると思いますが、どのように?

彼らは次のとおりでした:

catchブロックが異なる例外をスローしない限りは、tryブロックで例外をスローし、すぐにそれをキャッチしても意味がありません。

あなたのコードは、よりこの方法を感知するだろう:

public Response getABC(Request request) {
    Response res = new Response();
    if (request.someProperty == 1) {
        // business logic
    } else {
        res.setMessage("xxxx");
    }
    return res;
}

ビジネスロジック(条件があるときに実行が場合にのみtry-catchブロックを必要とするtrue)、例外をスローすることがあります。

あなたは(呼び出し側がそれを処理しなければならないことを意味します)例外をキャッチしない場合は、なしで行うことができますelse句。

public Response getABC(Request request) throws Exception {
    if (request.someProperty != 1) {
        throw new Exception("xxxx");
    }

    Response res = new Response();
    // business logic
    return res;
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=37747&siteId=1