以下のコードがある場合、基本的には、いくつかの条件が一致していると判断し、ブール値を割り当ててから、いくつかのコードを実行します。次に、booleanValueがfalseの場合は例外をスローします。残りのコードを実行せずにbooleanValueがfalseの場合に例外をすぐにスローするにはどうすればよいですか?最初のステートメントに2番目の条件ステートメントを挿入しただけでは、コードが重複します。これを行うためのスマートな方法を教えてください(実際のコードのように見えるようにコードを変更しました)。
boolean booleanValue = false;
Permission value;
if (someCondition) {
value = getPermission_1();
booleanValue = someMethod(value);
useValue_1(value);
}
else {
value = getPermission_2();
booleanValue = anotherMethod(value);
useValue_2(value);
}
if (!booleanValue) {
throw Exception();
}
ブール変数を削除するのはどうですか?次のようにコードを書き直すことができます。
if (someCondition) {
if (!someMethod()) {
throw new Exception();
}
some codes...
}
else {
if (!anotherMethod()) {
throw new Exception();
}
some codes...
}
見た目は楽に見えますが、それは好みの問題です...
追加の利点:例外がスタックトレースで終わる場合、2つの異なるthrowステートメントがあるため、条件が何であったかがわかります。それは少しデバッグをスピードアップするかもしれません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加