Condizione prima dell'affermazione o dell'istruzione in condizione

0

Ho riscontrato questo problema alcune volte:

Esiste una "regola di programmazione" per il controllo di una condizione (controllo degli errori per esempio) prima di voler eseguire codice, o solo eseguire il codice quando tale condizione è vera.

Verifica prima di eseguire il codice:

$condition = false;

function someFunction() {
    if(!$condition) {
      throw new Exception("Cant execute code because the condition is false"); 
    }
    //Execute code 
}

Esegui il codice solo quando la condizione è vera:

$condition = false;

function someFunction() {
    if($condition) {
      //Execute code 
    } else {
      throw new Exception("Cant execute code because the condition is false"); 
    }
}

Domanda

Quale degli esempi di codice è il più efficiente, ma stanno facendo la stessa cosa?

    
posta Bas 24.01.2015 - 19:46
fonte

1 risposta

4

Controlla prima, per favore. Quale preferiresti leggere e fare il debug, dopo che il codice è stato modificato alcune volte.

Questo?

function someFunction() {
    if($condition1) {
       if($condition2) {
           if($condition3) {
              //Execute code 
            } else {
                throw new Exception("Cant execute code because the third condition is false");
            }
        } else {
            throw new Exception("Cant execute code because the second condition is false"); 
        }
    } else {
        throw new Exception("Cant execute code because the first condition is false"); 
    }
}

O questo?

function someFunction() {
    if(!$condition1) {
        throw new Exception("Cant execute code because the first condition is false"); 
    }
    if(!$condition2) {
        throw new Exception("Cant execute code because the second condition is false"); 
    }
    if(!$condition3) {
        throw new Exception("Cant execute code because the third condition is false");
    }
    //Execute code 
}
    
risposta data 24.01.2015 - 21:03
fonte

Leggi altre domande sui tag