PDF de programación - 10 - Excepciones en VB.NET

Imágen de pdf 10 - Excepciones en VB.NET

10 - Excepciones en VB.NETgráfica de visualizaciones

Publicado el 4 de Junio del 2019
260 visualizaciones desde el 4 de Junio del 2019
801,9 KB
5 paginas
Creado hace 12a (02/02/2009)
Diseño Basado en Componentes
Curso 2008 / 09

Diseño Basado en Componentes

Excepciones en
VB.NET

Ingeniería Informática
Universidad Carlos III de Madrid

Diseño Basado en Componentes
Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Gestión de errores del .NET Framework
Errores y excepciones (I)

 Error: Evento que se produce durante la ejecución
de un programa, provocando una interrupción en su
flujo normal de ejecución. Genera un objeto
excepción.

 Excepción: Objeto generado por un error, que

contiene información sobre el error que se ha
producido.

 La gestión de errores proporciona un mecanismo

que permite controlar programas que tengan
muchas características dinámicas durante su
ejecución.

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Gestión de errores del .NET Framework
Errores y excepciones (II)

Manipulación estructurada de errores
Estructura Try...End Try (I)

 Manipulador de excepciones: Bloque de

código que proporciona una respuesta al error
que se ha producido.

 Tipos de tratamiento de errores en VB.NET:

– Estructurado
– No estructurado

 Cada vez que se produce un error, se genera un objeto de la clase

Exception o alguna de sus derivadas (hijas).

 La estructura Try...End Try proporciona el medio para definir un

bloque de código sensible a errores, y los correspondientes
manipuladores de excepciones.
Try

' Código que puede provocar errores
' ....

[Catch [Excepcion [As TipoExcepcionA]] [When Expresión]

' Respuesta a error de tipo A
' ....
[Exit Try]

]
[Catch [Excepcion [As TipoExcepcionN]] [When Expresión]

' Respuesta a error de tipo N
' ....
[Exit Try]

]
[Finally

' Código posterior al control de errores
' ....

]
End Try

1

Diseño Basado en Componentes
Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Manipulación estructurada de errores
Estructura Try...End Try (II)
‘Option Strict On
Dim sValor As String
Dim iNumero As Integer
Try

' Comienza el control de errores
Console.WriteLine("Introducir un número:")
sValor = Console.ReadLine()
' Si no hemos introducido un número...
iNumero = CInt(sValor) ' ...aquí se producirá un error...
' ...y no llegaremos a esta parte del código
iNumero = iNumero + 1000

Catch

' Si se produce un error, se genera una excepción
' que capturamos en este bloque de código
' manipulador de excepción, definido por Catch
Console.WriteLine("Error al introducir el número." & _
ControlChars.CrLf & "El valor ‘{0}’ es incorrecto.", sValor)

Manipulación estructurada de errores
Estructura Try...End Try (III)

Finally

' Si se produce un error, después de Catch se ejecuta este bloque;
' Si no se produce error, después de Try también se ejecuta.
Console.WriteLine("El controlador de errores ha finalizado.")

End Try
' Resto del código del procedimiento.
Dim dtFecha As Date
Console.WriteLine("Introducir una fecha: ")
sValor = Console.ReadLine()
' Si ahora se produce un error,
' al no disponer de una estructura para controlarlo
' se cancelará la ejecución.
dtFecha = CDate(sValor)
Console.WriteLine("La fecha es: {0}", dtFecha)
Console.ReadLine()

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Manipulación estructurada de errores
Clase Exception (I)

 Sentencia Catch: se escribe el nombre de un

identificador, definiéndolo como tipo Exception o alguno
de los tipos de su jerarquía (OverFlowException,
IndexOutOfRangeException...).

Catch Excepcion As TipoExcepcionN

 Message: Descripción del error.
 Source: Nombre del objeto o aplicación que provocó el

error.

 StackTrace: Ruta o traza del código en la que se

produjo el error.

 TargetSite: Método que provocó el error.
 ToString(): Cadena con información detallada del error.

Manipulación estructurada de errores
Clase Exception (II)
' ....

Try

' ....

Catch oExcep As Exception

' Si se produce un error, se crea un objeto excepción que capturamos volcándolo
' a un identificador de tipo Exception

Console.WriteLine("Se produjo un error. Información de la excepción")
Console.WriteLine("================================================")
Console.WriteLine("Message: {0}", oExcep.Message)
Console.WriteLine("Source: {0}", oExcep.Source)
Console.WriteLine("StackTrace: {0}", oExcep.StackTrace)
Console.WriteLine(oExcep.ToString())

Finally

' ....

End Try

' ....

2

Diseño Basado en Componentes
Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Manipulación estructurada de errores
Condición para un manipulador de excepciones

 Sentencia Catch: se añade cláusula When para situar

una expresión que sirva como filtro o condición.
Dim byMiNum As Byte
Dim dtFHActual As Date
' Obtener la fecha actual
dtFHActual = System.DateTime.Today()
Try

Console.WriteLine("Introducir un número:")
' Si introducimos un número no incluido en el rango de Byte...
byMiNum = CByte(Console.ReadLine()) ‘Considerando Strict On

Catch oExcep As OverflowException When (dtFHActual.Month = 3)

' ...saltará este manipulador de excepciones, pero sólo
' cuando las excepciones de desbordamiento
' se produzcan en el mes de marzo.
Console.WriteLine("El número introducido " & _
"no se encuentra en el rango adecuado (0-255).")

End Try

Manipulación estructurada de errores
Forzar la salida de un controlador de errores

 Exit Try: se sale del controlador de errores sin

finalizarlo.
– Si hay bloque Finally se ejecuta en cualquier caso.

Dim iMiNum As Integer
Dim aValores() As String = {"a", "b", "c"}
Try

Console.WriteLine("Introducir un número: ")
' Si no es un número Byte se produce error.
iMiNum = CInt(Console.ReadLine())
' Salimos de controlador de errores sin finalizarlo.
Exit Try
' Esta línea produce error siempre, ya que no existe el índice 5 en el array.
aValores(5) = "d"

Catch oExcep As OverflowException

' ....

Catch oExcep As Exception

' ....
End Try
' ....

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Manipulación no estructurada de errores
Objeto Err

Manipulación no estructurada de errores
On Error (I)

 Se crea automáticamente al iniciarse la aplicación.
 Ámbito público.
 Proporciona información sobre los errores ocurridos

en el transcurso de la aplicación.

 Al producirse un error, la propiedad Number tendrá

un valor mayor que cero.

 Al producirse un error, la propiedad Description

dará información textual del error producido.

 On Error: Instrucción que activa o desactiva una rutina de

control de errores.
– On Error Goto Etiqueta: activa una etiqueta de control de errores

(Bloque de código), al que se desviará el flujo del programa
cuando se produzca un error.

On Error Goto ControlErrores

Dim dtFecha As Date
dtFecha = “Valor incorrecto“
'...
' Etiqueta de control de errores

ControlErrores:

Console.WriteLine("Error: {0} - {1}", Err.Number, Err.Description)
Console.ReadLine()

3

Diseño Basado en Componentes
Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Manipulación no estructurada de errores
On Error (II)

Gestión de errores del .NET Framework
Lanzamiento de errores (I)

– On Error Resume Next: hace que la ejecución

continúe con la siguiente línea de código.
 Para la captura de errores: consultar propiedades del

objeto Err, y posteriormente, inicializar el Err llamando a
su método Clear().

– On Error Goto 0: desactiva el controlador de

errores que hubiera activado hasta el momento.

 Throw: se utilizar para lanzar explícitamente un error. Genera un

objeto del tipo excepción que se indique.

Public Sub AsignarCredito(ByVal ldbCredito As Double)

If ldbCredito > 2500 Then

Throw New CreditoException("Límite disponible: 2500 " & _
"- Se intentó asignar " & CType(ldbCredito, String))

Else

mdbDisponible = ldbCredito

End If
End Sub

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09

Gestión de errores del .NET Framework
Lanzamiento de errores (II)

Public Class CreditoException

Inherits Exception

Private msDescripcion As String

Public Sub New(ByVal lsDescripcion As String)

msDescripcion = lsDescripcion

End Sub

Public ReadOnly Property Descripcion() As String

Get

Return msDescripcion

End Get

End Property

End Class

Gestión de errores del .NET Framework
Creación de errores con el objeto Err
 Método Raise(): permite generar nuestros propios

errores.

On Error Goto ControlErrores
Dim iValor As Integer
Console.WriteLine("Introducir un número")
iValor = CInt(Console.ReadLine())
If iValor > 500 Then

Err.Raise(5100, , "El número debe ser menor de 500")

End If
Console.WriteLine("Esta línea se ejecuta después de un posible error")
Console.ReadLine()
' ---

' etiqueta de control de errores
ControlErrores:
Console.WriteLine("Error: {0} - {1}", Err.Number, Err.Description)
Console.ReadLine()
Resume Next

4

Diseño Basado en Componentes
Curso 2008 / 09

Diseño Basado en Componentes

Excepciones en
VB.NET

Ingeniería Informática
Universidad Carlos III de Madrid

Diseño Basado en Componentes
Curso 2008 / 09

5
  • Links de descarga
http://lwp-l.com/pdf16034

Comentarios de: 10 - Excepciones en VB.NET (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad