Qualcuno ha delle metriche sull'esecuzione del test nullo rispetto al codice di avvolgimento in un tentativo di cattura?test nullo o prova catch
Sospetto che il test Null sia molto più efficiente, ma non ho dati empirici. .
L'ambiente è C#/3.x rete e il confronto codice è:
Dude x = (Dude)Session["xxxx"];
x = x== null ? new Dude(): x;
contro
Dude x = null;
try {
x = (Dude)Session["xxxx"];
x.something();
} catch {
x = new Dude();
}
ci sono dei vantaggi ad avvolgere in prova trucco?
null è sempre un valore possibile ... – mson
nel corso regolare degli eventi l'oggetto non deve essere nullo. in questo caso, null si verifica solo se la sessione è scaduta – mson
+1, non utilizzare MAI eccezioni per il flusso di controllo del programma. L'unica volta che vorresti creare un'eccezione è se (Dude) Session ["xxxx"]; essere nulli è stato causa di interrompere il funzionamento del metodo in cui si trovava. Ad esempio, se un valore nullo impedirebbe a tale metodo di eseguire correttamente la funzione che è stato chiamato a eseguire. Come hai scritto la domanda, se tutto ciò che devi fare in questo caso per continuare è creare un nuovo Dude(), allora non è così, quindi un'eccezione non è giustificata. –