多くのエラーチェックを伴うメソッドの書き方について、別のプログラマーと意見の相違がありました。
public void performAction() {
if (test1) {
if (test2) {
if (test3) {
// DO STUFF
} else {
return "error 3";
}
} else {
return "error 2";
}
} else {
return "error 1";
}
}
-
public void performAction() {
if (!test1) {
return "error 1";
}
if (!test2) {
return "error 1";
}
if (!test3) {
return "error 1";
}
// DO STUFF
}
私には、ifステートメントのネストが深いため、最初の例が読みにくくなっています。
2 番目のものは、3 つのreturnがあるにもかかわらず、より読みやすくなっています。
コードコンプリートがそれについて何を言っているのか好奇心でチェックしましたが、これを処理する方法についてあまり確信が持てませんでした:
ネストの一番下にあるエラー状態のスタックは、適切に記述されたエラー処理コードの兆候です。
しかしその後
ルーチンの本体を 4 つの if ステートメント内でインデントすることは、特に最も内側の if ステートメント内に多くのコードがある場合、見栄えが悪くなります。
2番目の例のように、ガード句の使用を検討してください
各ルーチンでのリターンの数を最小限に抑えます。ルーチンを理解するのは、一番下を読んでいて、それが上のどこかで返された可能性に気付いていない場合、理解するのが難しくなります。
メソッドのエラー チェック部分をどのように記述して、読みやすくエラーを起こしやすくしますか?