Affermazioni dovrebbero essere usate per controllare qualcosa che non dovrebbe mai accadere, mentre un'eccezione dovrebbe essere usata per controllare qualcosa che potrebbe accadere. Ad esempio, una funzione potrebbe dividere per 0, quindi dovrebbe essere utilizzata un'eccezione, ma un'asserzione potrebbe essere utilizzata per verificare che il disco rigido scompaia improvvisamente.
L'affermazione è buona o cattiva?
No, né andare a né asserire sono malvagi. Ma entrambi possono essere usati in modo improprio. Assert è per i controlli di integrità. Cose che dovrebbero uccidere il programma se non sono corrette.
Perché le asserzioni sono cattive?
Le asserzioni possono essere usate per verificare le invarianti di implementazione interne, come lo stato interno prima o dopo l'esecuzione di qualche metodo, ecc. Se l'asserzione fallisce, significa davvero significa che la logica del programma è rotta e puoi' t recuperare da questo.
Le asserzioni sono una buona pratica?
La guida linguistica che introduce le asserzioni ha alcune buone linee guida che sono fondamentalmente quelle che ho appena descritto. Sì, è una buona pratica. Nel caso Spring, è particolarmente importante perché i controlli stanno convalidando le impostazioni delle proprietà, ecc. che in genere provengono da file di cablaggio XML.
In quali casi sono utili le asserzioni?
Presupponendo che il codice venga testato correttamente, le asserzioni fanno diverse cose utili: Rileva errori sottili che altrimenti potrebbero passare inosservati . Rileva gli errori prima che si siano verificati di quanto potrebbero altrimenti essere rilevati. Fare una dichiarazionesugli effetti del codice che è garantito essere vero.