Si tengo debajo de la función, con dos opcioneslanzar una excepción o devolver null
private MyObject findBlank() {
for (int i = 0; i < pieces.length; i++) {
if(pieces[i].isBlank()){
return pieces[i];
}
}
return null;
}
private MyObject findBlank() {
for (int i = 0; i < pieces.length; i++) {
if(pieces[i].isBlank()){
return pieces[i];
}
}
throw new NoSuchFieldError("No blank piece found!");
}
Desde este método Sé que siempre debe devolver un objeto una de las piezas '' es siempre isBlank() == true
, el retorno nulo al final es solo para complacer al compilador. Dado que este es el caso y mi código no funcionaría de todos modos si devuelve nulo, ¿es correcto hacer una excepción?
Mis opciones son:
- retorno nulo y la aplicación obtendrá una NullPointerException en algún caso extremo
- devuelto nulo y envolver el uso del método con comprueba
- (myObject! = Null) lanzar una excepción que explotará en el tiempo de ejecución
Supongo que lo que estoy preguntando es, ¿es este el lugar correcto para lanzar una excepción? es decir, no hay nada que pueda hacer al respecto si se mete en la situación. ¿Está clasificado como 'excepcional' o no debería verificar qué devuelve mi método (lo que hace que mi código se vea horrible). Si sé que no debería devolver nulo, entonces debería lanzar la excepción ¿no?
Además, ¿cómo podría elegir qué excepción, o extender una y lanzar la mía?
Para ayudar a elegir una excepción: http://wuhrr.wordpress.com/2007/11/22/java-exceptions-list/ – Blundell
¿La sugerencia "ninguno" no es atractiva? :-) – missingfaktor
@missingfaktor Estoy codificando en Android, así que no puedo traer otros frameworks pesados – Blundell