todas propagacion programador por manejo lista las jerarquia excepciones ejemplos derivan creados clase java exception exception-handling

java - propagacion - Devuelve un valor Y lanza una excepción?



throws exception java (3)

Estoy trabajando con una API que dice que es verdadera si tiene éxito y falsa si falla. Pero, también afirma lanzar excepciones diferentes si falla. ¿Cómo puede devolver falso y lanzar una excepción?


Si bien es posible escribir su código de tal forma que una excepción Y un valor se puedan derivar de una llamada a función (vea las publicaciones anteriores), NUNCA se debe hacer con la codificación adecuada.

Me encantaría ver un enlace a la documentación de esta API. Las API deben dar prioridad a la claridad. Lanzar una excepción y devolver un valor deja la pregunta de si el valor que se devuelve es seguro de usar o si no es válido.

Recuerde, los bloques try / catch son el OTRO método de manejo de excepciones. No pasan la excepción al método de llamada, pero lo manejan internamente de una manera que el desarrollador considere apropiado.

Si, para fines de depuración, necesita ver el valor resultante en el caso de una excepción, entonces la idea de Bohemian funciona bien.


Puede lanzar una excepción que tenga un valor (en este caso booleano):

public class ValueException extends Exception { final boolean value; public ValueException(boolean value, String message) { super(message); this.value = value; } public boolean getValue() { return value; } }


No es posible lanzar una excepción y devolver un valor desde una sola llamada de función.

Quizás haga algo como devolver false si hay un error, pero lanzando una excepción si la entrada no es válida.

edit: PaulPRO publicó una respuesta (ahora borrada) señalando que es técnicamente posible provocar una excepción en un hilo diferente, al tiempo que devuelve un valor en el actual. Pensé que valía la pena señalar esto, incluso si no es algo que nunca deberías ver.