Unidad 35. Captura de errores (I)





35.1. Objetivos del tema.

Adentrarse dentro de la captura de errores en programación.

35.2. Introducción.

Todo programa tiene un nivel de calidad.

La calidad vendrá marcada por distintos factores, un buen análisis, una buena depuración, etc..., y un adecuado control y captura de errores.

 

Un programa no debe finalizar nunca de forma brusca, siempre debe tener una salida ante cualquier contingencia, por varios motivos, calidad del producto, por un resultado elegante en la forma de funcionar el programa,  y otro importante, porque de esa forma se consigue la posibilidad, si se desea, de dejar un histórico de fallos, que después permitirá obtener datos para la solución de los mismos.

 

En la captura de errores, hay que tener presente que no siempre son errores de ejecución, si no que en muchas ocasiones la única forma de poder tomar la decisión adecuada en un momento determinado, es la de forzar un fallo en el programa, para su captura posterior.

35.3. Captura de errores.

La captura de errores por lo tanto se hace indispensable.

Cada lenguaje dispone de un sistema de captura, podrá ser mejor o peor, podrá o no gustarnos pero hay que utilizarlo, y no porque sea un mal sistema o un engorro utilizarlo, dejar de hacerlo.

Este apartado es el que puede marcar la diferencia entre nuestro programa y otros similares.

Tanto en VB como en otros lenguajes, la instrucción de captura es la misma, Try, con las diferencias que cada lenguaje le otorga.

 

public ClaseArchivos(String Ruta, String Nombre)

{

 try

{

FileWriter Salida = null;

File Archivo = new File(Ruta + Nombre);

Salida = new FileWriter(Archivo);

}

 catch (IOException ex)

{

  Logger.getLogger(ClaseArchivos.class.getName()).log(Level.SEVERE, null, ex);

}

}

 

En Vb

 

 Try

FileOpen(Canal, Nombre, OpenMode.Input)

 Catch ex As IO.IOException

Console.WriteLine("Error en acceso al archivo")

 End Try

 

35.4. Errores.

En cualquier caso, para poder hacer una gestión de dichos errores, es necesario siempre tener prevista la clase adecuada para su gestión y estudiar las capacidades del lenguaje para explotarlas al máximo.

 

De ésta forma se puede llevar a cabo la gestión de los errores a capturar.

Se pueden controlar grupos de excepciones, es decir, que se pueden controlar, a través del argumento, excepciones semejantes.

 

35.5. Inhibición en la captura.

También existe la posibilidad de inhibirse en la captura de errores desviando la misma a un nivel superior o aquella clase que realiza la llamada o genera el objeto.

35.6. Trazas.

A la hora de depurar un programa, en muchas ocasiones se recurre a la visualización de datos intermedios mediante el uso de alguna herramienta u objeto de depuración.

35.7. Conclusiones.

Con el desvío de excepciones se obtienen varias ventajas, e inconvenientes.

Se reduce el volumen de código, por lo que es más sencillo de leer y seguir. También se obtiene de esa forma la posibilidad, de que cuando se crea código para terceros, se deja la forma o la interface de los mensajes de error, en manos de quien la usa, lo cual en la mayoría de los casos es una buena alternativa, ya que el código queda completamente integrado en el programa donde se incrusta la clase.

Evidentemente tiene como inconveniente, que no responsabilidad, de que eso genere una ejecución inadecuada, pero lo será por quien la usa, no por quien la escribió.

 

Como podemos observar aumenta el volumen en el programa principal, y por otro lado se pierde la ubicación de donde se genera el error, que en el ejemplo no tiene ninguna importancia, pero en un uso real sí puede tenerla.

 

package trazas;

 

public class Main

{

 public static void main(String[] args)

  {

  ClasePrueba Objeto = new ClasePrueba();

  Objeto.ErrorCadena();

  Objeto.ErrorMatem();

  } 

}

 

El Main anterior tiene mucho menos volumen de código, por lo que es más claro en su seguimiento y más fácil de entender, los errores están gestionados igual, o mejor.

 

La clase sin embargo pasa al contrario, pero hay que tener presente que una clase se escribe una vez, y se usa muchas.

 

Por lo tanto, visto los dos caminos, todo es cuestión de gustos, y de cómo queramos que sea nuestro código.

 

Octubre-2010
Pág. 35.1

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies