A la hora de desarrollar aplicaciones Java es interesante disponer de un conjunto de herramientas para ayudarnos a no cometer equivocaciones básicas.
He probado la herramienta FindBugs y me he quedado impresionado por su sencillez y aparente potencia.
Vamos a ver, sobre uno de los códigos de uno de nuestros recientes tutoriales, cómo nos puede ayudar a anticipar errores.
Podemos ir al Web del producto y conseguir el zip con los binarios http://findbugs.sourceforge.net/

Arrancamos el producto
Una vez descomprimido, solo tenemos que arrancar el fichero por lotes (en entorno Windows)

Configuramos el proyecto

Pulsado el botón, encontramos el resumen y lo dice todo:

Vemos la porción de código que se ve afectada

Identificación del error
La descripción del error es bastante buena, incluida la proposición del arreglo. Básicamente nos esta comentando que tenemos un bloque de código que, en caso de producirse una excepción dejaría un Stream abierto y nos propone que incluyamos un bloque finally, para evitarlo.

Vemos el detalle del código afectado:
// esta función recupera el texto de la página String recuperaContenido(HttpURLConnection enlace) { try { String respuesta = ""; BufferedReader in = new BufferedReader (new InputStreamReader(enlace.getInputStream())); String cadena = ""; while (cadena != null) { cadena = in.readLine(); if (cadena != null) { respuesta+=("\n" + cadena); } } return respuesta; } catch(Exception e) { return "Error " + e.getMessage() + "\n"; } } |
Podemos codificar el cambio propuesto y comprobar que se soluciona el problema...
// esta función recupera el texto de la página String recuperaContenido(HttpURLConnection enlace) { BufferedReader in = null; try { String respuesta = ""; in = new BufferedReader (new InputStreamReader(enlace.getInputStream())); String cadena = ""; while (cadena != null) { cadena = in.readLine(); if (cadena != null) { respuesta+=("\n" + cadena); } } return respuesta; } catch(Exception e) { return "Error " + e.getMessage() + "\n"; } finally { if(in != null) { try { in.close(); } catch (Exception ignorada) {} } } } |
Conclusiones
Los jefes de proyecto tenemos habitualmente un problema crítico y consiste en que las posibles variables que nos pueden dar juego, las tenemos ya definidas:
Entonces, bajo esta coyuntura, solo podemos jugar con la productividad:
Esta herramienta, FindBugs, puede ayudarnos parcialmente a mejorar nuestro trabajo aunque debemos combinarla con otras y buenas prácticas y plantillas.
El día a día probablemente nos impida elevarnos al problema y optimizar nuestra productividad. Es posible que necesitemos gente no contaminada de nuestra realidad para ayudarnos a mejorar..... Para eso es posible que me podáis contratar ....
Roberto Canales Mora
rcanales[arroba]adictosaltrabajo.com
www.adictosaltrabajo.com
Trabajos relacionados
Ver mas trabajos de Programacion |
|
Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo en formato DOC desde el menú superior.