王の賞賛:
ここでは、コードは次のようになります。
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;
}