La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Manejo de Errores Leonel Morales Díaz Ingeniería Simple Disponible en: Copyright.

Presentaciones similares


Presentación del tema: "Manejo de Errores Leonel Morales Díaz Ingeniería Simple Disponible en: Copyright."— Transcripción de la presentación:

1 Manejo de Errores Leonel Morales Díaz Ingeniería Simple Disponible en: Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple. Derechos reservados

2 Errores de Léxico Uso de un símbolo no definido Uso de símbolos que no son del lenguaje Ejemplo: Dima UnStr UnStr -- Guatemala For i = * To 40j

3 Errores de Sintáxis Uso de símbolos en lugares inadecuados Omisión del símbolo correcto Ejemplo: If A < Then A = 38**B Else B = B*4>A If

4 Errores Semánticos Errores en el sentido de la construcción No tiene sentido Ejemplo: Dim A,B A = Guatemala B = A*8

5 Errores Lógicos El programa no corresponde con lo que se quiere hacer Produce resultados ilógicos Ejemplo: Construír una tabla de 2x2 en cada celda de una de 2x2

6 Errores Lógicos Dim i,j Document.Write " " For i = 1 To 2 Document.Write " " For j = 1 To 2 Document.Write " " Do While i < 2 Document.Write " " Do While j < 2 Document.Write " " j = j + 1 Loop Document.Write " " i = i + 1 Loop Document.Write " " Next Document.Write " " Next Document.Write " " ej074.html

7 Errores de Tiempo de Corrida Ocurren en condiciones específicas durante la ejecución No fueron previstos al programar Detienen la ejecución del programa Ejemplos: División entre cero Indices fuera de límites en vectores Uso no válido de nulo Cambio de formatos de fecha Abrir un archivo inexistente

8 El Objeto Err Almacena los datos del último error Es un objeto Tiene propiedades o atributos Tiene comportamiento (métodos) Propiedades: Number, Source, Description Métodos: Clear, Raise

9 ¿De qué sirve el objeto Err? Si la ejecución se detuvo, ¿cómo se puede consultar la información del error?

10 Flujo en Caso de Errores Instrucción On Error Si hay un error: Si se usa On Error Resume Next Continúa en la siguiente instrucción Si se usa On Error Goto 0 El programa se detiene Se marca error Si nada se indica Se asume On Error Goto 0

11 ¿Dónde Ocurre Error? Dim i,Arr1(8) Randomize For i = 0 To 8 Arr1(i) = Round(Rnd()*10,0) Next For i = 0 To 8 Arr1(i) = Arr1(i) / Arr1(i+1) Next Document.Write " " For i = 0 To 9 Document.Write " " & Arr1(i) & " " Next Document.Write " "

12 On Error Resume Next Dim i,Arr1(8) Randomize For i = 0 To 8 Arr1(i) = Round(Rnd()*10,0) Next For i = 0 To 8 On Error Resume Next Arr1(i) = Arr1(i) / Arr1(i+1) Next Document.Write " " For i = 0 To 9 Document.Write " " & Arr1(i) & " " Next Document.Write " " Dim i,Arr1(8) Randomize For i = 0 To 8 Arr1(i) = Round(Rnd()*10,0) Next For i = 0 To 8 On Error Resume Next Arr1(i) = Arr1(i) / Arr1(i+1) On Error Goto 0 Next Document.Write " " For i = 0 To 9 Document.Write " " & Arr1(i) & " " Next Document.Write " "

13 Políticas de Error No hacer nada Se atiende el error cuando ocurre A favor: Desarrollo más rápido Código más simple En contra: Hay que parchar el código Costos de soporte y mantenimiento

14 Políticas de Error Que ocurra elegantemente Mostrar mensaje explicativo del error Guardarlo en una bitácora A favor: Se maneja el error de forma sencilla y estandarizada En contra: Se obliga al usuario a interpretarlo Mucho código de cajón

15 Ocurre Elegantemente Dim UnNum,Repetir Repetir = True Do While Repetir UnNum = InputBox("Ingrese un número","Ingreso",0) On Error Resume Next Document.Write "El número ingresado es: " & UnNum & _ " que dividido 8 da: " & (UnNum/8) If Err.Number > 0 Then MsgBox "Ha ocurrido el error:" & VBNewLine & Err.Number & _ VBNewLine & "de descripción:" & VBNewLine & Err.Description & _ VBNewLine & "de descripción:" & VBNewLine & Err.Description & _ VBNewLine & "de origen:" & VBNewLine & Err.Source,VBCritical,"Error" VBNewLine & "de origen:" & VBNewLine & Err.Source,VBCritical,"Error" Err.Clear Else Repetir = False End If On Error Goto 0 Loop ej075.html

16 Políticas de Error Que ocurra sin que se note Suprimir los avisos de error Poner un On Error Resume Next al inicio A favor: Permite ejecutar los programas hasta el final En contra: Errores importantes nunca salen a la luz

17 Políticas de Error Cero tolerancia a errores Prevenir los errores, hacer que no ocurran Eliminar los errores antes de producción Si pueden ocurrir anticiparse Si no pueden anticiparse hacer que: Falle en seguro (fail safe) Degradación aceptable (fail soft) Tolerancia completa (fail operational)

18 Políticas de Error Cero tolerancia a errores A favor: Exige planificar la codificación Exige disciplina en la codificación Reduce costos de soporte y mantenimiento En contra: Difícil de implementar

19 Errores de Strings Verificar Cadena vacía Longitud cero No nulo Espacios al inicio y al final Espacios en el medio ej076.html ej077.html


Descargar ppt "Manejo de Errores Leonel Morales Díaz Ingeniería Simple Disponible en: Copyright."

Presentaciones similares


Anuncios Google