JavaRush /Blog Java /Random-ES /Pausa para el café #158. Diez consejos para manejar excep...

Pausa para el café #158. Diez consejos para manejar excepciones en Java

Publicado en el grupo Random-ES
Fuente: Medio Esta publicación lo ayudará a comprender mejor cómo manejar excepciones de manera efectiva en Java. Pausa para el café #158.  Diez consejos para manejar excepciones en Java - 1Manejar las excepciones de Java puede resultar un desafío. Puede resultar difícil determinar qué excepciones de Java manejar, qué excepciones volver a generar y cuáles simplemente ignorar. Sin embargo, existen una serie de pautas útiles que pueden ayudarlo de manera efectiva a manejar excepciones y crear nuevas aplicaciones. Conozcamoslos.
  1. Tenga cuidado con lo que registra.
  2. No ignore las excepciones lanzadas.
  3. Utilice un controlador de excepciones global.
  4. No cierre los recursos manualmente.
  5. Lanzar temprano y manejar excepciones más tarde.
  6. Las excepciones de Java no se deben registrar ni volver a generar.
  7. Examinar las excepciones suprimidas.
  8. En la declaración de lanzamiento, declare las excepciones con precisión.
  9. Maneje primero la excepción más obvia.
  10. Utilice una semántica moderna de manejo de excepciones.

1. Ten cuidado con lo que registras

Los desarrolladores de software siempre deben ser conscientes de los derechos de seguridad y privacidad de sus clientes.
  • Un programa Java puede transferir datos a otros sistemas y una gran cantidad de desarrolladores y administradores pueden trabajar con él (incluida la corrección de errores).
  • Si se registra algún dato confidencial en los archivos de registro, su empresa no cumplirá con los requisitos de seguridad y puede perder su trabajo.

2. No ignores las excepciones lanzadas

No detecte una excepción y luego la ignore. Ocultar excepciones no es una buena forma de manejarlas en Java. Como mínimo, escriba el nombre de la excepción y el mensaje asociado. De esta manera, podrá encontrar información sobre el problema en su entrada. Depurar aplicaciones Java debido a excepciones ocultas es increíblemente difícil.

3. Utilice un controlador de excepciones global

Durante la ejecución del programa siempre habrá algunas excepciones que no se detectaron previamente en su código. Por lo tanto, agregue siempre un controlador de excepciones global para manejar las excepciones no detectadas. Esto no solo permitirá que se registre y maneje la excepción, sino que también evitará que la aplicación falle si se lanza una excepción en tiempo de ejecución.

4. No cierres los recursos manualmente

Otra recomendación importante al manejar excepciones de Java es permitir que la JVM llame al método close() en los recursos que se están cerrando. No intentes cerrarlos tú mismo. Esto se puede lograr fácilmente inicializando los recursos dentro del módulo try-resources . Semántica:
public class TryWithResourcesExample {

public static void main(String[] args) throws Exception {

try (Door door = new Door()) {

door.swing();

} catch (Exception e) { ..... }

} finally { .....}

}

}
Como puede ver, una vez que se completa el bloque try...catch, la JVM cierra el recurso, eliminando la posibilidad de fugas de recursos complejas y difíciles de solucionar.

5. Lanzar temprano y manejar excepciones más tarde

Lanza una excepción cada vez que ocurre una condición de excepción en tu código. No espere a que se ejecute ninguna línea de código antes de salir del método en el que se encuentra. Al detectar excepciones, la función debe colocarse al final del método. Esto reduce la cantidad de bloques catch en sus métodos, lo que hace que su código sea más fácil de leer y mantener.

6. Las excepciones de Java no deben registrarse ni volver a generarse

Si se produce una excepción, realice una de las siguientes acciones:
  • Continúe trabajando con su programa mientras registra la excepción.
  • Lanza la excepción nuevamente y permite una forma diferente de registrar datos.
No combine ambas etapas. Nunca registre y luego vuelva a generar la misma excepción, como se muestra en el siguiente ejemplo:
try {

Class.forName("com.min.Example");

} catch (ClassNotFoundException ex) {

log.warning("Class was not found.");

throw ex;

}
Esto da como resultado la duplicación de código y los archivos de registro se obstruyen con entradas duplicadas, lo que hace mucho más difícil diagnosticar el código.

7. Examinar las excepciones suprimidas

La excepción suprimida es una nueva característica del lenguaje que no todos los desarrolladores conocen. Al implementar un método probado con recursos, se pueden generar dos excepciones al mismo tiempo. Esta condición se puede comprobar fácilmente consultando la presencia de una excepción suprimida. La única forma de determinar si se ha producido esta condición es ver si la excepción de destino también contiene una excepción suprimida.

8. Cuando utilice la declaración throw, especifique las excepciones exactas.

Al usar una declaración throw dentro del cuerpo de un método, un desarrollador descuidado estaría usando una clase de excepción genérica. Pero esta no es la mejor manera de manejar excepciones en Java. En su lugar, especifique siempre las excepciones exactas que puede generar el método. Ayuda a otros desarrolladores a conocer las diferentes técnicas de manejo de errores que se pueden utilizar cuando un determinado método no funciona como se esperaba.

9. Maneje primero la excepción más obvia

Esto es más un requisito del compilador que un consejo para las prácticas de manejo de excepciones de Java, pero un desarrollador siempre debe manejar la excepción más obvia primero y la menos segura al final. Si no se sigue esta regla, la JVM devolverá un error en tiempo de compilación con un mensaje de error muy críptico y difícil de entender. Haga su vida como desarrollador de software más fácil manejando siempre ciertas excepciones en su código.

10. Utilice una semántica moderna de manejo de excepciones.

Java proporciona muchas funciones de manejo de errores y excepciones que simplifican el desarrollo y reducen significativamente la cantidad de código Java. Utilice la capacidad de manejar múltiples excepciones en un solo bloque catch y cerrar recursos automáticamente usando un bloque try . Utilice excepciones de tiempo de ejecución para que otros desarrolladores no tengan que manejar las excepciones que usted genera.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION