Eso lo hacíamos más o menos así. (Ejemplo en VB6)
Private Sub cmdOk_Click( )
On Error Resume Next
If TextBox1.Text = 2 Then
cmd.Write(TextBox1.Text)
End If
End Sub
Ciertamente aquí nos tiene que dar un error seguro, ya que “cmd.Write” no es parte de la sintaxis de VB6, en caso de que no hubiésemos tenido “On Error Resume Next” pues la aplicación sufriría un desbordamiento.
Aunque en .NET todavía podemos usar esta forma, lo que se nos aconseja es que utilicemos “Try Catch”. Vamos a ver un ejemplo de una ConsoleApplication.
Sub Main()
Dim i As Integer
Dim j As Integer
Try
’Dentro de este bloque ponemos el codigo que
’necesitamos evaluar
i = 10
j = 0
Dim res As Integer
res = i / j
System.Console.WriteLine(“El Resultado es:” & res)
Catch ex As Exception
’Aqui nos indicara el origen del error
System.Console.WriteLine(ex.Message)
Finally
System.Console.ReadLine()
End Try
End Sub
Como podemos ver en el codigo (el cual esta comentado), se generara un error ya que estamos intentando dividir una cantidad por cero (0) y esto matematicamente es imposible. Luego el Bloque “Catch” entra en funcion con el mensaje de excepcion y nos presenta el suguiente mensaje en pantalla, imagen 1.
En caso de que sacaramos el codigo del “Try Catch” pasaria lo siguiente, imagen 2.
Nos aparece este mensaje de error el cual no nos dejara compilar nuestra aplicación.
Pero esto es con valores los cuales podemos controlar facilmente porque lo ponemos nosotros mismos, pero que pasaria con una cantidad que introduzca el usuario del sistema, para ver este caso crearemos una WindowsApplication.
El Formulario se vera asi.

El mensaje de error como el del resultado de la operación (division) seran presentandos en un MessageBox.
Este seria el codigo de la aplicación.
Private Sub btnDividir_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnDividir.Click
‘Declaramos y asignamos los valores de entrada
‘los cuales los definira el usuario
Dim i As Integer = Val(Me.txtPR.Text)
Dim j As Integer = Val(Me.txtSR.Text)
Try
’Declaramos la variable del resultado
Dim res As Integer
’Realizamos la operacion
res = i / j
’Mostramos el resultado de la operacion en pantalla
MessageBox.Show(“El Resultado es:” & res)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
La diferencia a simple vista no es mucha pero si nos fijamos esta vez el usuario definira la cantidad, pero con esto no es que todo esta hecho hay otras cosas que tenemos que tomar en cuenta, por ejemplo, si el usuario en vez de numeros introduce letras, la operación no se daria, esto lo podemos hacer utilizano “Not IsNumeric(objeto)” dentro de una condicion “If…Then…Else” la cual puede ir dentro del Bloque “Try Catch”
Veamos el Codigo.
Private Sub btnDividir_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnDividir.Click
‘Declaramos y asignamos los valores de entrada
‘los cuales los definira el usuario
Dim i As Integer = Val(Me.txtPR.Text)
Dim j As Integer = Val(Me.txtSR.Text)
Try
’En caso de no sea numerico el dato introducido
If Not IsNumeric(Me.txtPR.Text) Then
MessageBox.Show(“El Primer Rango debe ser numerico”, “Dato numerico”)
’Limpia la entrada
Me.txtPR.Clear()
’Enfoca para una nueva entrada
Me.txtPR.Focus()
’Con esto los que hago es dividir la ejecucion de cada subrutina
’para evitar una sobrecarga en la condicion
Exit Sub
ElseIf Not IsNumeric(Me.txtSR.Text) Then
MessageBox.Show(“El Segundo Rango debe ser numerico”, “Datos numerico”)
Me.txtSR.Clear()
Me.txtSR.Focus()
Exit Sub
Else
’Declaramos la variable del resultado
Dim res As Integer
’Realizamos la operacion
res = i / j
’Mostramos el resultado de la operacion en pantalla
MessageBox.Show(“El Resultado es:” & res)
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
La aplicación en caso de que utilizemos letras en lugar de numeros para realizar la operación matematica nos mostrara el siguiente error.

En caso de que el usuario haya introducido bien los datos, mostrara el resultado de la siguiente manera.

En conclusion, la diferencia que podemos constatar al realizar una WindowsApplication como una ConsoleApplication es que.
La ConsoleApplication: en esta el error es provocado por nosotros mismos y asi es demasiado facil predecir el error y evitarlo, aun sin tener que utilizar excepciones.
La WindowsApplication: aquí es diferente ya que los datos son introducidos por el usuario y de no utilizar las excepciones el programa nos daria un error de desbordamiento “muy feo” sacando al usuario del mismo.
Pues bien, esto es solo una parte de lo que es el tratamiento de errores en .NET, espero que este articulo les haya sido de utilidad, que esa es la intencion |