Guía de diseño para métodos que devuelven objetos en Java / ¿puedo usar excepciones?

Si tengo un método di getNextWidget() que devuelve un widget, ¿cuál es el diseño adecuado para dicho método si necesito verificar el tamaño de, por ejemplo, la fábrica que fabrica el widget y solo devolver un widget si hay widgets en la fábrica? ¿Hay alguna manera de lanzar una excepción para un método que no es void?

preguntado el 04 de julio de 12 a las 04:07

Sí, absolutamente, y se hace todo el tiempo. Simplemente lance la excepción y, si es una excepción marcada, asegúrese de que el método indique que posiblemente se lance. -

Sí, de hecho, cualquier método puede generar una excepción. Depende de usted decidir cuándo y qué excepción lanzar. -

1 Respuestas

Un patrón común es volver null cuando no hay más widget para tener. Esto funciona muy bien si el método nunca regresa. null.

Otro patrón común es lanzar una excepción. Pero entonces deberías tener un hasMoreWidgets() método, también. En el flujo normal de operación (por ejemplo, recuperar todos los widgets hasta que no quede ninguno), el programa no debe desencadenar excepciones.

De cualquier manera, si puede haber más widgets, pero hubo algún problema para acceder a la fábrica, por lo que no puede estar seguro, debe lanzar una excepción (porque esto sería una condición de error real).

Respondido 04 Jul 12, 04:07

De acuerdo, y la clave es documentar explícitamente lo que está sucediendo, especialmente si el método es público. Documente tanto el tipo de devolución, lo que sucederá en los casos extremos y la intención de todo esto. - Aerodeslizador lleno de anguilas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.