En la práctica, el manejo de excepciones es más que simplemente conocer la sintaxis. Escribir código robusto es más un arte y en este artículo se analizarán las mejores prácticas de manejo de excepciones de Java. Estas mejores prácticas de Java siguen las bibliotecas JDK estándar y varios códigos fuente abiertos para manejar errores y excepciones. También es un manual útil para que los programadores de Java escriban código sólido. Mejores prácticas para el manejo de excepciones en la programación Java
Aquí está mi colección de 10 mejores prácticas para el manejo de excepciones en la programación Java. Hay elogios y críticas por las excepciones comprobadas en la programación Java. El manejo forzado de excepciones es una función del lenguaje. En este artículo, intentaremos minimizar el uso de excepciones marcadas y aprenderemos a usar excepciones marcadas y no marcadas en la programación Java.
1) Utilice excepciones marcadas para errores recuperables y errores no marcados para errores de programación.
Elegir excepciones marcadas o no marcadas siempre resulta confuso para los programadores de Java. Las excepciones marcadas garantizan que proporcione código de manejo de excepciones para condiciones de error. Esta es una forma del lenguaje de obligarlo a escribir código robusto, pero también introduce mucho desorden y lo hace ilegible. Por supuesto, detectar excepciones y hacer algo al respecto parece razonable si se cuenta con una estrategia de reemplazo y recuperación. Elija entre excepciones marcadas o excepciones de tiempo de ejecución en la programación Java. Para obtener más información, consulte excepciones marcadas y no marcadas.
2) Cerrar o liberar recursos en el bloque finalmente
Esta es una de las mejores prácticas bien conocidas en programación Java y es equivalente a un estándar cuando se trata de clases de red y IO. Cerrar recursos en el bloque finalmente garantiza una liberación razonable de recursos previamente disponibles y escasos en condiciones de ejecución normales y anormales, lo cual está garantizado por el bloque finalmente. A partir de Java 7, el lenguaje tiene una característica más interesante: la automatización de la gestión de recursos o los bloques ARM pueden implementar esta característica. No obstante, todavía debemos recordar cerrar los recursos en el bloque finalmente, lo cual es importante para liberar recursos limitados como FileDescriptors, que se utilizan en situaciones de programación de archivos y sockets.
3) Incluir la causa de la excepción en el seguimiento de la pila.
Muchas veces, las bibliotecas Java y el código fuente abierto envuelven una excepción en otra cuando se lanza una excepción causada por otra excepción. Registrar e imprimir excepciones de raíz se vuelve muy importante. La clase de excepción de Java proporciona el método getCause() para recuperar la causa de la excepción, lo que puede proporcionar más información sobre la causa de la excepción en el nivel raíz. Esta práctica de Java es muy útil a la hora de depurar o solucionar problemas. Recuerde siempre que si envuelve una excepción en otra excepción, debe pasar la excepción de origen al construir una nueva excepción.
4) Proporcione siempre información significativa y completa sobre la excepción.
La información de excepción es el lugar más importante porque es el primer lugar que ve el programador y aquí es donde puede encontrar la causa raíz del problema. Aquí siempre se proporciona información precisa y auténtica. Por ejemplo, compare los dos mensajes de excepción de la excepción IllegalArgumentException:
Mensaje 1: "Argumento incorrecto para el método"
Mensaje 2: “Valor ilegal para ${argument}: ${value}
El primer mensaje solo indica que el parámetro es ilegal o incorrecto, pero el segundo mensaje incluye el nombre del parámetro y el valor ilegal, lo cual es importante para encontrar la causa del error. Siga siempre estas mejores prácticas de Java al escribir código de manejo de excepciones en la programación Java.
5) Evite el uso excesivo de excepciones marcadas
Las excepciones marcadas tienen ciertas ventajas a la hora de hacer cumplir la ejecución, pero también rompen el código y lo hacen menos legible al enmascarar la lógica empresarial. Siempre que no abuse de las excepciones marcadas, puede minimizar estas situaciones y el resultado es un código más limpio. También puede utilizar nuevas funciones de Java 7, como un bloque catch para múltiples excepciones y administración automática de recursos para eliminar duplicados.
6) Convertir excepciones marcadas en excepciones de tiempo de ejecución
Esta es una de las técnicas utilizadas para limitar el uso de excepciones comprobadas en la mayoría de los marcos como Spring. La mayoría de las excepciones comprobadas de JDBC están envueltas en DataAccessException, y la excepción (DataAccessException) es una excepción no comprobada. Este es el beneficio que aportan las mejores prácticas de Java. Las excepciones específicas están restringidas a módulos específicos, como SQLException, que se coloca en la capa DAO, y las excepciones de tiempo de ejecución con un significado claro se lanzan a la capa del cliente.
7) Recuerde que las excepciones son costosas para el rendimiento.
Una cosa para recordar es que las excepciones son costosas y hacen que el código sea lento. Si tiene un método que lee desde un ResultSet, a menudo generará una SQLException sin pasar al siguiente elemento, lo que se ejecutará mucho más lento que el código normal que no genera una excepción. Por lo tanto, se minimizan las capturas y movimientos de excepciones innecesarios, cuando no existe una razón fija. En lugar de simplemente lanzar y detectar excepciones, puede obtener una solución más limpia y eficaz si puede utilizar variables booleanas para representar los resultados de la ejecución. Corrija la fuente del error y evite la captura de excepciones innecesarias.
8) Evita que el bloque catch esté vacío.
No hay nada peor que un bloque catch vacío, porque no sólo oculta errores y excepciones, sino que también puede dejar los objetos en un estado inutilizable o sucio. Un bloque catch vacío sólo puede dejar de tener sentido si está absolutamente seguro de que la excepción no seguirá afectando el estado del objeto de ninguna manera, pero registrar errores durante la ejecución del programa sigue siendo la mejor opción. Esta no es solo una de las mejores prácticas de Java, sino la práctica más común para escribir código de manejo de excepciones en la programación Java.
9) Utilice excepciones estándar
Nuestra novena práctica recomendada recomienda utilizar excepciones de Java estándar e integradas. Usar excepciones estándar en lugar de crear las nuestras cada vez es la mejor opción para lograr mantenibilidad y coherencia, ahora y en el futuro. La reutilización de excepciones estándar hace que el código sea más legible porque la mayoría de los desarrolladores de Java están familiarizados con las excepciones estándar como RuntimeException, IllegalStateException, IllegalArgumentException o NullPointerException que se originan en el JDK y pueden conocer cada excepción de un vistazo. excepciones definidas en el código o en la documentación.
10) Registrar excepciones lanzadas por cualquier método.
Java proporciona las palabras clave throw y throws para generar excepciones. Utilice @throw en javadoc para registrar cualquier excepción que pueda generar cualquier método. Esto se vuelve muy importante si escribe API o interfaces públicas. Cualquier excepción generada por un método debe documentarse para que pueda alertar inconscientemente a cualquiera que lo utilice. Estas son todas las mejores prácticas que se deben seguir al manejar excepciones en la programación Java. Háganos saber cuáles son las prácticas que se deben seguir al escribir código de manejo de excepciones en la programación Java.