Módulo 8: Manejo de Errores y Excepciones
Tipos de errores
Uso del depurador
Manejo de excepciones
Descripción
Uso de Visual Studio 2005
Acceso A datos
Escribir Código
Crear la Interfaz
Depurary Desplegar
Lección: Tipos de errores
¿Qué son los errores de sintaxis?
¿Que son los errores de tiempo de ejecución?
¿Que son los errores de lógica?
¿Qué son los errores de sintaxis?
Visualizar errores en la Lista de Errores:
Error de sintaxisError de sintaxis
Error de sintaxisError de sintaxis
¿Que son los errores de tiempo de ejecución?
Private Function Sumar(ByVal a As Integer, ByVal b As Integer) Return Sumar(a, b)End Function
‘ Hacer que la función Sumar se llame a si misma es sintácticamente correcto, pero el hacerlo provocará un ciclo infinito
Private Function Sumar(ByVal a As Integer, ByVal b As Integer) Return Sumar(a, b)End Function
‘ Hacer que la función Sumar se llame a si misma es sintácticamente correcto, pero el hacerlo provocará un ciclo infinito
¿Que son los errores de lógica?
Definición: Un error que hace que una aplicación produzca resultados incorrectos
Puede no generar un mensaje de error
Se encuentra probando la aplicación y analizando los resultados
Dim x As Integer = 2
Do While x < 10
' Sentencias de código
x -= 1
Loop
Dim x As Integer = 2
Do While x < 10
' Sentencias de código
x -= 1
Loop
Lección: Uso del depurador
¿Qué es el modo de interrupción?
Cómo utilizar puntos de interrupción
Cómo modificar puntos de interrupción
La barra de herramientas Depuración
Recorrer paso a paso el código
Cómo utilizar las ventanas de depuración
Cómo utilizar la Ventana de comandos
¿Qué es el modo de interrupción?
Detiene la operación de una aplicación
En modo de interrupción, podemos:
Recorrer nuestro código línea por línea
Determinar los procedimientos activos que se han invocado
Observar los valores de variables, propiedades y expresiones
Utilizar las ventanas de depuración para modificar valores de variables y propiedades
Cambiar el flujo del programa
Ejecutar instrucciones de código
Cómo utilizar puntos de interrupción
Un punto de interrupción es un marcador en nuestro código que hace que Visual Basic detenga la ejecución del código en una línea específica
No podemos colocar puntos de interrupción en código no ejecutable
Puntos de interrupciónPuntos de
interrupción
La barra de herramientas Estándar
IniciarIniciar
Interrumpir todo
Interrumpir todo
Detener depuración
Detener depuración
Paso a paso por
instrucciones
Paso a paso por
instrucciones
Paso a paso para salir
Paso a paso para salir
Paso a paso por procedimientos Paso a paso por procedimientos
La barra de herramientas Depurar
Ventana Inmediato
Ventana Inmediato
Mostrar la instrucción siguiente
Mostrar la instrucción siguiente
Ventana LocalesVentana Locales
Ventana InspecciónVentana Inspección
Cómo recorrer el código
Paso a paso por instrucciones o por procedimientos: ejecuta la siguiente línea de código; si la línea siguiente contiene una invocación a un procedimiento:
Paso a paso por instrucciones: únicamente ejecuta la invocación, y se detiene en la primera línea de código dentro del procedimiento
Paso a paso por procedimientos: ejecuta todo el procedimiento, y se detiene en la primera línea de código fuera del procedimiento
Paso a paso para salir: reanuda la ejecución hasta que regresa el procedimiento y, a continuación, se interrumpe en el punto de retorno del procedimiento de llamada
Ejecutar hasta el cursor: el depurador ejecuta nuestra aplicación hasta llegar al punto de inserción que hemos establecido
Demostración: Cómo utilizar las ventanas de depuración
En esta demostración, aprenderemos a depurar una aplicación utilizando:
Las ventanas Automático, Variables locales, Inspección e Inmediato
Puntos de interrupción
El comando Ejecutar hasta el cursor
Cómo utilizar las ventanas de depuración
VentanaVentanaVentanaVentana Utilizar esta ventana para… Utilizar esta ventana para… Utilizar esta ventana para… Utilizar esta ventana para…
AutomáticoAutomáticoVisualizar variables en la instrucción actual y tres instrucciones anteriores y posteriores a la instrucción actual
Visualizar variables en la instrucción actual y tres instrucciones anteriores y posteriores a la instrucción actual
Pila dellamadas
Pila dellamadas
Ver el histórico de llamadas de la línea de código que se está depurando
Ver el histórico de llamadas de la línea de código que se está depurando
Variableslocales
Variableslocales Visualizar y modificar variables locales Visualizar y modificar variables locales
InspecciónInspección
Crear una lista personalizada de variables y expresiones a monitorizar
Ver y manipular cualquier expresión a inspeccionar
Crear una lista personalizada de variables y expresiones a monitorizar
Ver y manipular cualquier expresión a inspeccionar
Cómo utilizar la Ventana Inmediato
Utilice la Ventana Inmediato para: Invocar comandos (modo Comando) Depurar y evaluar expresiones (modo Inmediato)
TareaTareaTareaTarea SoluciónSoluciónSoluciónSolución EjemploEjemploEjemploEjemplo
Evaluar expresionesEvaluar expresiones Encabezar la expresión con un signo de interrogación (?)
Encabezar la expresión con un signo de interrogación (?) ?miVariable ?miVariable
Invocar comandos del entorno de Visual Basic 2005
Invocar comandos del entorno de Visual Basic 2005
Escribir el comando, precedido del signo mayor que (>)
Escribir el comando, precedido del signo mayor que (>)
>Debug.Autos>Debug.Autos
Lección: Gestión de excepciones
La clase Exception
¿Qué es la gestión estructurada de excepciones?
Cómo utilizar la instrucción Try…Catch
Cómo utilizar el bloque Finally
Cómo lanzar excepciones
Directrices para el uso de la gestión estructurada de excepciones
La clase Exception
Las clases Exception permiten recuperar información sobre cualquier excepción que encontremos
Las propiedades de la clase base Exception permiten analizar excepciones Principales propiedades: StackTrace, Message, HelpLink, Source
IOExceptionIOException
ExceptionException
OutOfMemoryExceptionOutOfMemoryException
ApplicationExceptionApplicationException
SystemExceptionSystemException
FileNotFoundExceptionFileNotFoundException
El .NET Framework proporciona el siguiente modelo de objeto de excepciones:
¿Qué es la gestión estructurada de excepciones?
Detecta y responde a errores mientras se ejecuta una aplicación
Utiliza Try…Catch…Finally para encapsular y proteger bloques de código que podrían provocar errores
Cada bloque tiene uno o más controladores asociados
Cada controlador especifica alguna forma de condición de filtro en el tipo de excepción que controla
Ventajas:
Permite la separación entre la lógica y el código de gestión de errores
Facilita la lectura, depuración y mantenimiento del código
Cómo utilizar la instrucción Try…Catch
Poner el código que podría lanzar excepciones en un bloque Try
Gestionar las excepciones en otro bloque Catch
Lógica de programaLógica de programa
Gestión de excepcionesGestión de excepciones
Cómo utilizar el bloque Finally
Sección opcional; si se incluye, se ejecuta siempre Colocar código de limpieza, como el utilizado para
cerrar archivos, en el bloque Finally
Cómo lanzar excepciones
Utilizar la instrucción Throw para crear una excepción que podamos controlar con el código de la gestión estructurada de excepciones
If (dia < 1) Or (dia > 365) Then
Throw New ArgumentOutOfRangeException( )
Else
...
End If
If (dia < 1) Or (dia > 365) Then
Throw New ArgumentOutOfRangeException( )
Else
...
End If
Guías para el uso de la gestión estructurada de excepciones
No utilizar la gestión estructurada de excepciones para errores que se produzcan de modo rutinario. Utilizar otros bloques de código para abordar estos errores.
If…End If, etc.
No utilizar la gestión estructurada de excepciones para errores que se produzcan de modo rutinario. Utilizar otros bloques de código para abordar estos errores.
If…End If, etc.
Devolver un valor para los casos de errores habitualesEjemplo: los métodos de lectura de E/S de archivos
no lanzan una excepción de fín de archivo
Devolver un valor para los casos de errores habitualesEjemplo: los métodos de lectura de E/S de archivos
no lanzan una excepción de fín de archivo
Organizar los bloques Catch desde específicos hasta generalesOrganizar los bloques Catch desde específicos hasta generales
Demostración: Uso de la gestión estructurada de excepciones
En esta demostración, aprenderemos cómo implementar la gestión estructurada de excepciones en nuestro código
Tipos de errores
Uso del depurador
Manejo de excepciones
Revisión
Uso de Visual Studio 2005
Acceso A datos
Escribir Código
Crear la Interfaz
Depurary Desplegar
Lab 8.1: Implementando Gestión Estructurada de Excepciones
Ejercicio 1: Usando Bloques Try…Catch
Ejercicio 2: Usando Bloques Try…Catch…Finally