Sie sind auf Seite 1von 5

Institucin Universitaria Colegio Mayor del Cauca .

NET
EXCEPCIONES La Estructura Try End Try

Ejemplo:
Module module1 Public Sub Main() Dim sValor As String Dim iNumero As Integer Try ' comienza el control de errores Console.WriteLine("Introducir un nmero") sValor = Console.ReadLine() ' si no hemos introducido un nmero... iNumero = sValor ' ...aqu se producir un error... ' ...y no llegaremos a esta parte del cdigo iNumero = iNumero + 1000 Catch ' si se produce un error, se genera una excepcin ' que capturamos en este bloque de cdigo ' manipulador de excepcin, definido por Catch Console.WriteLine("Error al introducir el nmero" & _ ControlChars.CrLf & _ "El valor {0} es incorrecto", sValor) End Try ' resto del cdigo del procedimiento ' .... Console.ReadLine() End Sub End Module

Ing. Yuli Garcs Bolaos

Pgina 1

Institucin Universitaria Colegio Mayor del Cauca .NET


Ejemplo con Finally Public Sub Main() Dim sValor As String Dim iNumero As Integer Try ' comienza el control de errores Console.WriteLine("Introducir un nmero") sValor = Console.ReadLine() ' si no hemos introducido un nmero... iNumero = sValor ' ...aqu se producir un error... ' ...y no llegaremos a esta parte del cdigo iNumero = iNumero + 1000 Catch ' si se produce un error, se genera una excepcin ' que capturamos en este bloque de cdigo ' manipulador de excepcin, definido por Catch Console.WriteLine("Error al introducir el nmero" & _ ControlChars.CrLf & _ "El valor {0} es incorrecto", _ sValor) Finally ' si se produce un error, despus de Catch se ejecuta este bloque; ' si no se produce error, despus de Try tambin se ejecuta Console.WriteLine("El controlador de errores ha finalizado") End Try ' resto del cdigo del procedimiento Dim dtFecha As Date Console.WriteLine("Introducir una fecha") ' si ahora se produce un error, ' al no disponer de una estructura para controlarlo ' se cancelar la ejecucin dtFecha = Console.ReadLine() Console.WriteLine("La fecha es {0}", dtFecha) Console.ReadLine() End Sub LA CLASE EXCEPCION

Ing. Yuli Garcs Bolaos

Pgina 2

Institucin Universitaria Colegio Mayor del Cauca .NET

Resultados

CAPTURA DE EXCEPCIONES DE DIFERENTE TIPO


Public Sub Main() Dim sValor As String Dim iNumero As Integer Dim sLetras() As String = {"a", "b", "c", "d"} Try ' comienza el control de errores Console.WriteLine("Introducir un nmero") sValor = Console.ReadLine() ' si no hemos introducido un nmero... iNumero = sValor ' ...aqu se producir un error... ' ...y no llegaremos a esta parte del cdigo iNumero = iNumero + 1000 ' introducir una letra y asignarla a una ' posicin del array Dim sNuevaLetra As String Dim iPosicion As Integer Console.WriteLine("Introducir una letra") sNuevaLetra = Console.ReadLine()

Ing. Yuli Garcs Bolaos

Pgina 3

Institucin Universitaria Colegio Mayor del Cauca .NET


Console.WriteLine("Introducir posicin del array para la letra") iPosicion = Console.ReadLine() ' si al asignar la letra al array no existe ' el ndice, se producir un error sLetras(iPosicion) = sNuevaLetra Catch oExcep As System.InvalidCastException ' excepcin producida por un error al intentar ' realizar una conversin de tipos Console.WriteLine(oExcep.ToString()) Catch oExcep As System.IndexOutOfRangeException ' excepcin producida por un error ' al intentar usar un ndice inexistente ' de array, o ndice fuera de rango Console.WriteLine(oExcep.ToString()) Finally ' si se produce un error, despus de Catch se ejecuta este bloque; ' si no se produce error, despus de Try tambin se ejecuta Console.WriteLine("El controlador de errores ha finalizado") End Try Console.ReadLine() End Sub EXCEPCIONES PERSONALIZADAS Public Class CtaCredito Private msTitular As String Private mdbDisponible As Double Public Property Titular() As String Get Return msTitular End Get Set(ByVal Value As String) msTitular = Value End Set End Property Public ReadOnly Property Credito() As Double Get Return mdbDisponible End Get End Property ' en este mtodo, si se intenta asignar un importe ' superior al permitido, se lanza una excepcin, ' utilizando un objeto de la clase CreditoException, ' heredado de Exception Public Sub AsignarCredito(ByVal ldbCredito As Double) If ldbCredito > 2500 Then Throw New CreditoException("Lmite disponible: 2500 " & _ "- Se intent asignar " & CType(ldbCredito, String)) Else mdbDisponible = ldbCredito End If End Sub End Class ' -------------------------------------------------

Ing. Yuli Garcs Bolaos

Pgina 4

Institucin Universitaria Colegio Mayor del Cauca .NET


' esta clase contiene la informacin sobre un error ' producido en un objeto CtaCredito 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

Ing. Yuli Garcs Bolaos

Pgina 5

Das könnte Ihnen auch gefallen