Documente Academic
Documente Profesional
Documente Cultură
En esta lección veremos cómo tratar los errores de forma estructurada, ya que el
"viejo" On Error sigue funcionando de la misma forma que en VB6.
La segunda es que no podemos usar los dos sistemas al mismo tiempo, por lo
menos en un mismo método o propiedad, o utilizamos On Error o utilizamos
Try/Catch. De todas formas, si utilizamos el IDE (entorno integrado) de Visual
Basic, será el propio compilador el que nos avise cuando mezclemos las dos
formas de detectar los errores.
Veamos ahora con más detalle cada uno de estos bloques y que es lo que
podemos hacer en cada uno de ellos.
Bloque Try
Bloque Catch
Try
Catch ex As System.IO.IOException
End Try
Try
Catch ex As Exception
End Try
Try
Catch
End Try
En un mismo Try podemos capturar diferentes tipos de errores, para ello podemos
incluir varios bloques Catch, cada uno de ellos con un tipo de excepción diferente.
Esto nos permite poder indicar varios bloques Catch que detecten el mismo error,
pero cada una de ellas pueden tener diferentes expresiones indicadas con When.
Try
x = CInt(Console.ReadLine())
y = CInt(Console.ReadLine())
r = x \ y
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Bloque Finally
En este bloque podemos indicar las instrucciones que queremos que se ejecuten,
se produzca o no una excepción. De esta forma nos aseguramos de que siempre
se ejecutará un código, por ejemplo para liberar recursos, se haya producido un
error o no.
Nota:
Hay que tener en cuenta de que incluso si usamos Exit Try para salir
del bloque de control de errores, se ejecutará el código indicado en el
bloque Finally.
Nota:
Cuando ejecutamos una aplicación desde el IDE (entorno de
desarrollo), los errores no controlados siempre se producen,
independientemente de que tengamos o no definida la captura de
errores desde el evento UnhandledException. Ese evento solo se
producirá cuando ejecutemos la aplicación fuera del IDE de Visual
Basic.