Fecha y hora actual: Jueves 17 Ene 2019 04:36
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Curso VB .NET - Tema 1.35 - Captura de errores

Responder al Tema

Índice del Foro > Visual Basic .NET > Curso VB .NET - Tema 1.35 - Captura de errores

Autor Mensaje
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3200
Ubicación: Valencia - España

Mensaje Publicado: Domingo 25 Oct 2009 08:13

Título del mensaje: Curso VB .NET - Tema 1.35 - Captura de errores

Responder citando

Curso de programación en .NET - Tema 1.35 - Captura de errores


1. Captura de errores.
1.1 Objetivos del tema.

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

1.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.

1.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 Java como en VB la instrucción de captura es la misma, Try, con las diferencias que cada lenguaje le otorga.
Código:
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
Código:
Try
   FileOpen(Canal, Nombre, OpenMode.Input)
Catch ex As IO.IOException
   Console.WriteLine("Error en acceso al archivo")
End Try


1.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.

1.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.

1.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.

Java dispone de una clase para realizar de forma más cómoda la traza en el programa.
Dispone de la posibilidad de realizar la traza a distintos niveles de detalle o gravedad, y de ofrecer los resultados por distintas vías de salida, archivos, pantalla y formatos.

1.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.
Código:
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.


Autor del curso: casiopea


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

captura datos

Marta85 C, C#, Visual C++ 1 Miércoles 22 Feb 2017 14:02 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Captura de pelicula Flash

Martín Ignacio Galván Flash 0 Domingo 05 Feb 2017 14:58 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Curso de PHP-WordPress avanzado

wordpressadict PHP 1 Domingo 27 Nov 2016 19:59 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Curso fundamentos de programación

Yaser Programación en general 0 Miércoles 18 May 2016 00:28 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Curso de Desarrollo en Inteligencia Artificial

JL Iglesias Feria Programación de juegos o videojuegos 7 Miércoles 02 Dic 2015 18:20 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,