1

コードはこのように実行され、コードが増えると読めなくなります

if(!cond1){
    //print error
}else{
        if(!cond2){
          // print error
        }else{
               //code goes on.....
             }
     }

上記のコードを書く別の方法は非常に役に立ちます

4

3 に答える 3

0

これは通常、ネストされたまたはチェーンされたs の代わりにガード句で処理されます。if

if (! cond1)
    throw error 1;
if (! cond2)
    throw error 2;

perform action;

これは、エラー時に関数が実際に戻ることを前提としていることに注意してください。ただし、これをお勧めします。一般に、エラーが発生したときにアクションを再開しようとせず、できるだけ早くアプリケーションのロジックの上位レベルに制御を渡してください。

特に、「印刷エラー」の側面は、ほとんど (?)常に実際のロジックから切り離されている必要があります。そうしないと、単一責任の原則に違反しています。

結果として、エラー状態が検出されたときにロジックを実行する関数を早期に終了させ、他の関数がそれらのエラーの出力を処理できるようにします。

于 2012-07-23T20:12:02.373 に答える
0

ブロックを使用して真の条件を実行すると、理解/デバッグが容易になります。何かが真であるときは、何かが真でないときよりも狭い条件だからです。

if (cond1){

}else if (cond2){

}else{

}
于 2012-07-23T20:09:07.370 に答える
0

複雑さに応じて、条件を独自の関数に分割し、次のように再構築することを検討できます。

if (!f1() && !f2() ... ){
    ...
}

次に、最上位の関数を乱雑にするのではなく、個々の条件の関数でその特定のエラーを処理します。

于 2012-07-23T20:13:40.183 に答える