Questo è corretto, ma personalmente lo strutturerei al contrario. E 'comune per convalidare argomenti all'inizio del metodo, e poi usarli per il resto del metodo sapendo che sono corretto:
public void addCard(Card card) {
if (card == null) {
throw new IllegalArgumentException("Attempt to add null card");
}
cardList.add(card);
}
Il vantaggio di fare tutti i test argomento up-front è che se un viene passato un argomento non valido, si genera un'eccezione prima che si verifichino effetti collaterali - piuttosto che a metà del metodo, che potrebbe lasciare l'oggetto in uno stato non valido. Naturalmente in questo caso non importa, ma io favorire la coerenza qui :)
Si noti che non c'è bisogno di dichiarare IllegalArgumentException
- è una sottoclasse di RuntimeException
, che significa che è deselezionata (non è necessario di dichiararla).
fonte
2010-10-27 19:27:01
Grazie per i vostri commenti. Non sono sicuro se ho ottenuto la quarta dichiarazione. Vuoi dire che non devo lanciare un'eccezione qui? – Eugene
@AndroidNoob - Devi lanciare l'eccezione, non devi semplicemente * dichiarare * che la lanci. 'public void addCard (Card card)' di per sé è sufficiente, perché IllegalArgumentException è una RuntimeException. –
Ah ok, capito, grazie! – Eugene