Vous êtes sur la page 1sur 3

Manejo de Errores con Try Catch

Instructor: Maynor Lpez DSC 2014


Esta instruccin proporciona una manera de controlar algunos o todos los errores posibles que pueden ocurrir en un bloque de cdigo determinado mientras se ejecuta el cdigo. Tiene la siguiente estructura: Try [ Bloque de cdigo que pudiera generar algn error durante la ejecucin ] Catch exception As type [ Bloque de cdigo que se ejecute cuando suceda un error ] Finally [ Parte opcional es un bloque de cdigo que se generara siempre al final sin importar si sucede algn error o no ] End Try Pero as no queda muy claro veamos un ejemplo prctico de cmo se utilizan. Primero cree un nuevo proyecto en visual studio y genere la siguiente interfaz:

Nombre a los RadioButton con los nombres: rbSuma, rbResta, rbMultiplicacion, rbDivision, como puede notar las letras iniciales son comunes rb haciendo referencia a que se trata de un RadioButton le recomendamos esta nomenclatura. Los TextBox nmbrelos as: tbNum1 y tbNum2 respectivamente. Ahora escribamos el mtodo para cada operacin. SUMAR:

Sub Sumar(ByVal numero1 As Integer, ByVal numero2 As Integer) Dim resultado As Integer = 0 resultado = numero1 + numero2 MsgBox("Resultado = " + numero1.ToString + " + " + numero2.ToString + " = " + resultado.ToString, MsgBoxStyle.Information, "Operaciones Basicas") End Sub

RESTAR:
Sub Restar(ByVal numero1 As Integer, ByVal numero2 As Integer) Dim resultado As Integer = 0 resultado = numero1 - numero2 MsgBox("Resultado = " + numero1.ToString + " - " + numero2.ToString + " = " + resultado.ToString, MsgBoxStyle.Information, "Operaciones Basicas") End Sub

Multiplicar:
Sub Multiplicar(ByVal numero1 As Integer, ByVal numero2 As Integer) Dim resultado As Integer = 0 resultado = numero1 * numero2 MsgBox("Resultado = " + numero1.ToString + " x " + numero2.ToString + " = " + resultado.ToString, MsgBoxStyle.Information, "Operaciones Basicas") End Sub

Dividir:
Sub Dividir(ByVal numero1 As Integer, ByVal numero2 As Integer) Try Dim resultado As Integer = 0 resultado = numero1 \ numero2 MsgBox("Resultado = " + numero1.ToString + " / " + numero2.ToString + " = " + resultado.ToString, MsgBoxStyle.Information, "Operaciones Basicas") Catch ex As DivideByZeroException MsgBox("No es posible la division entre cero", MsgBoxStyle.Critical, "Error") Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error") End Try End Sub

Bien en este ltimo mtodo aplicamos lo que es un try catch porque pudiera darse el caso que se pasen valores errneos como el caso de la divisin entre cero que no es posible aqu es donde tratamos dicha excepcin y por cualquier otro error tratamos el error general Exception. Ahora nos falta codificar el evento clic del botn, den doble clic sobre el botn en la vista de interfaz para que genere el evento clic y ponen el siguiente codigo:
Dim n1, n2 As Integer Try n1 = Integer.Parse(tbNum1.Text) n2 = Integer.Parse(tbNum2.Text) Catch ex As InvalidCastException

MsgBox("Lo escrito no es un numero", MsgBoxStyle.Critical, "Error") Exit Sub Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error") Exit Sub End Try

If (rbSuma.Checked = True) Then Sumar(n1, n2) ElseIf (rbResta.Checked = True) Then Restar(n1, n2) ElseIf (rbMultiplicacion.Checked = True) Then Multiplicar(n1, n2) ElseIf (rbDivision.Checked = True) Then Dividir(n1, n2) Else MsgBox("No ha seleccionado ninguna operacion", MsgBoxStyle.Critical, "Error") End If

Podemos ver que ocupamos otro try catch cuando hacemos el casting o conversin porque pudiera darse el caso que el usuario no introdujera algn nmero sino mas bien texto en las textbox haciendo que la conversin diese error y automticamente nos salimos del mtodo pues los datos sern utilizados lneas abajo.

Vous aimerez peut-être aussi