Manejo de Errores - PowerPoint PPT Presentation

About This Presentation
Title:

Manejo de Errores

Description:

... Exige planificar la codificaci n Exige disciplina en la codificaci n Reduce costos de soporte y mantenimiento En contra: ... – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 20
Provided by: Leone154
Category:

less

Transcript and Presenter's Notes

Title: Manejo de Errores


1
Manejo de Errores
  • 21 de Marzo de 2007

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 lt Then
  • A 38B
  • Else
  • B B4gtA
  • If

4
Errores Semánticos
  • Errores en el sentido de la construcción
  • No tiene sentido
  • Ejemplo
  • Dim A,B
  • A Guatemala
  • B A8

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 "ltTable Border1gt"
  • For i 1 To 2
  • Document.Write "ltTRgt"
  • For j 1 To 2
  • Document.Write "ltTDgtltTable Border1gt"
  • Do While i lt 2
  • Document.Write "ltTRgt"
  • Do While j lt 2
  • Document.Write "ltTDgtnbsplt/TDgt"
  • j j 1
  • Loop
  • Document.Write "lt/TRgt"
  • i i 1
  • Loop
  • Document.Write "lt/Tablegtlt/TDgt"
  • Next
  • Document.Write "lt/TRgt"
  • Next
  • Document.Write "lt/Tablegt"

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(i1)
  • Next
  • Document.Write "ltTable Border1gtltTRgt"
  • For i 0 To 9
  • Document.Write "ltTDgt" Arr1(i) "lt/TDgt"
  • Next
  • Document.Write "lt/TRgtlt/Tablegt"

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(i1)
  • Next
  • Document.Write "ltTable Border1gtltTRgt"
  • For i 0 To 9
  • Document.Write "ltTDgt" Arr1(i) "lt/TDgt"
  • Next
  • Document.Write "lt/TRgtlt/Tablegt"
  • 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(i1)
  • On Error Goto 0
  • Next
  • Document.Write "ltTable Border1gtltTRgt"
  • For i 0 To 9
  • Document.Write "ltTDgt" Arr1(i) "lt/TDgt"
  • Next
  • Document.Write "lt/TRgtlt/Tablegt"

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 gt 0 Then
  • MsgBox "Ha ocurrido el error" VBNewLine
    Err.Number _
  • VBNewLine "de descripción" VBNewLine
    Err.Description _
  • 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
Write a Comment
User Comments (0)
About PowerShow.com