Eso es correcto, pero personalmente lo estructuraría al revés. Es común para validar los argumentos en el inicio del método, y luego usarlos para el resto del método de saber si es correcta:
public void addCard(Card card) {
if (card == null) {
throw new IllegalArgumentException("Attempt to add null card");
}
cardList.add(card);
}
La ventaja de hacer todas las pruebas argumento por adelantado es que si una Se le pasa un argumento no válido, lanzará una excepción antes de que se produzcan efectos secundarios, en lugar de transcurrir la mitad del método, lo que podría dejar al objeto en un estado no válido. Por supuesto, en este caso no importa, pero estoy a favor de la coherencia aquí :)
Tenga en cuenta que no hay necesidad de declarar IllegalArgumentException
- es una subclase de RuntimeException
, lo que significa que no está marcada (que no es necesario declarar que)
Gracias por sus comentarios. No estoy seguro de si obtuve la cuarta declaración. ¿Quiere decir que no tengo que lanzar una excepción aquí? – Eugene
@AndroidNoob - Necesita lanzar la excepción, simplemente no necesita * declarar * que la arrojó. 'public void addCard (Card card)' por sí mismo es suficiente, porque IllegalArgumentException es una RuntimeException. –
Ah ok, lo tengo, gracias! – Eugene