Verificar método de membresía: excepción marcada

Tengo otra pregunta sobre las excepciones marcadas. He intentado responder a la siguiente pregunta. Debajo de mi intento se encuentra la pregunta y el código originales. ¿Podría decirme si estoy en lo cierto o cómo puedo cambiar mi intento de corregirlo? Saludos cordiales

public boolean checkMembership(MemberId memberId)
{
    // Firstly the method is tried to see if it works.
    try {
        public boolean checkMembership(MemberId memberId)
    }
    // If it does not work, then the exception is called
    catch (InvalidMemberIdException ex){}
}

El método checkMembership es parte de la clase Membership. Su propósito es validar el memberId que se le pasa como parámetro y luego intentar encontrarlo en una lista de miembros. Devuelve verdadero si se encuentra el memberId y falso si no.

public boolean checkMembership(MemberId memberId)
{
    if (!validate(memberId)) {
        // An exception must be thrown.
        …
    }
    // Further details of the check membership method are omitted.
    …
}

Si el parámetro memberId para checkMembership no es válido, se debe lanzar una InvalidMemberIdException. Vuelva a escribir la parte del método checkMembership que se muestra arriba para mostrar cómo se haría esto. Recuerde, esta es una excepción marcada. Debe incluir comentarios javadoc detallados para el método que se ajusten a las buenas convenciones estilísticas.

preguntado el 16 de mayo de 11 a las 18:05

¿Por qué tiene una declaración de método dentro de otra declaración de método? Y también, ¿por qué lanzar una excepción, por qué no devolver falso? -

1 Respuestas

solo agrega un

throw new InvalidMemberIdException("the id was invalid");

y actualice los javadocs.

editar: noté que el método tal como está escrito se llama a sí mismo de forma recursiva (dentro del bloque try catch). Probablemente no quieras hacer esto. Además, en el bloque de captura no desea hacer nada ("tragarse la excepción" suele ser malo). Ponga un registro allí o algo así, o un comentario de que intencionalmente no está haciendo nada.

contestado el 16 de mayo de 11 a las 22:05

Está llamando al método deceleración, no al método. No se compilará. - RonK

@ronk verdadero. Solo estaba mirando el comentario que decía lanzar la excepción y mostraba cómo hacerlo. El código en sí en la pregunta no tiene mucho sentido. - hvgotcodes

{// En primer lugar, se intenta el método para ver si funciona. try {public boolean checkMembership (MemberId memberId)} // Si no funciona, la excepción se llama catch (InvalidMemberIdException ex) {}} - grano

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