ABCdatos
Programas y tutoriales
en castellano
ABCdatos tu página de inicio Inicio       
Su navegador rechazó un objeto incrustado.
Su navegador no soporta objetos incrustados. Vea los últimos mensajes en el foro.
PUBLICIDAD


CÓMO: Interceptar excepciones en Visual Basic .NET

     
Fuente: Microsoft Corporation
Web: http://www.microsoft.com/spain/
     
  • Descripción
  • Opiniones
  • Recomendar

PUBLICIDAD
La interceptación y el tratamiento de excepciones son tareas estándar de programación.

En este artículo se explica cómo utilizar un bloque try-catch-finally para interceptar una excepción. Un bloque try-catch-finally es un contenedor que se pone alrededor del código donde es posible que se produzca una excepción.

Un bloque try-catch-finally consta de las secciones siguientes:
  • Todo el código que puede iniciar una excepción se pone dentro del bloque try.
  • Si se inicia una excepción se entra en el bloque catch y el programa puede realizar la operación apropiada de recuperación o avisar al usuario.
  • El código del bloque finally se ejecuta siempre y puede realizar una limpieza después de producirse una excepción. El bloque finally es opcional.

Cómo interceptar excepciones en Visual Basic .NET


  1. Cree una nueva aplicación de consola en Visual Basic .NET.
  2. En el procedimiento Sub Main(), inserte el ejemplo de código siguiente. En el ejemplo se declara e inicializa tres variables, donde la inicialización de "k" produce un error:

    ' Este código genera una excepción.
    Console.WriteLine("Vamos a dividir 10 entre 0 y ver lo que ocurre...")
    Console.WriteLine()

    Dim i as Integer = 10
    Dim j as Integer = 0
    Dim k As Integer k = i/j ' Error en esta línea.
  3. Presione la tecla F5 para ver la excepción.
  4. Ponga una instrucción try-catch alrededor del código para capturar el error. El código siguiente intercepta todos los errores iniciados en el código y muestra un mensaje de error genérico. Reemplace el código del procedimiento Sub Main() por el código siguiente:

    ' Este código muestra cómo interceptar una excepción.
    Try
    Console.WriteLine("Vamos a dividir 10 entre 0 y ver lo que ocurre...")
    Console.WriteLine()

    Dim i as Integer = 10
    Dim j as Integer = 0
    Dim k As Integer k = i/j ' Error en esta línea. El control pasa al bloque catch.
    Catch
    Console.WriteLine("Error.")
    End Try
  5. Presione CTRL+F5 para ejecutar el proyecto. Observe que aparecerá el mensaje de error del bloque catch.
  6. Si es preciso realizar alguna tarea de limpieza o postproceso independientemente de que se produzca o no un error, utilice la parte finally de la instrucción try-catch-finally. El código de la parte finally de la instrucción se ejecuta siempre, independientemente de que haya o no una excepción. En la consola aparecerá el código siguiente, "Esta instrucción se imprime siempre", aunque no aparezca ningún error. Reemplace el código de Sub Main() por el código siguiente:

    ' Este código muestra cómo interceptar una excepción.
    Try
    Console.WriteLine("Vamos a dividir 10 entre 0 y ver lo que ocurre...")
    Console.WriteLine()

    Dim i as Integer = 10
    Dim j as Integer = 0
    Dim k As Integer k = i/j ' Error en esta línea. El control pasa al bloque catch.

    Catch
    Console.WriteLine("Error.")
    Finally ' Esta sección se ejecuta independientemente del proceso anterior.
    Console.WriteLine()
    Console.WriteLine("Esta instrucción se imprime siempre")
    End Try
  7. Presione CTRL+F5 para ejecutar el proyecto.
  8. Puede utilizar el objeto de excepción con la instrucción catch para recuperar detalles acerca de la excepción. Una excepción tiene varias propiedades que pueden ayudarle a identificar información de ayuda, origen o incluso pila acerca de una excepción. Esta información puede ser muy útil para hacer un seguimiento de la causa original de la excepción o para proporcionar una explicación mejor de su origen. El ejemplo siguiente intercepta una excepción y muestra un mensaje de error específico. Como antes, puede reemplazar el código del procedimiento Sub Main() por el código siguiente:

    Ejemplo 1:
    ' Este código muestra cómo interceptar una excepción.
    Try
    Console.WriteLine("Vamos a dividir 10 entre 0 y ver lo que ocurre...")
    Console.WriteLine()

    Dim i as Integer = 10
    Dim j as Integer = 0
    Dim k As Integer k = i/j ' Error en esta línea. El control pasa al bloque catch.

    Catch e As Exception ' Ejecuta código que trata la excepción
    ' o informa al usuario de lo que ha ocurrido.
    Console.WriteLine("Error:")
    Console.WriteLine(e.ToString()) ' Muestra el mensaje de error al usuario.

    Finally ' Esta sección se ejecuta independientemente del proceso anterior.
    Console.WriteLine()
    Console.WriteLine("Esta instrucción se imprime siempre")
    End Try


    Ejemplo 2:
    ' Este código muestra cómo interceptar una excepción.
    Try
    Console.WriteLine("Vamos a dividir 10 entre 0 y ver lo que ocurre...")
    Console.WriteLine()

    Dim i as Integer = 10
    Dim j as Integer = 0
    Dim k As Integer k = i/j ' Error en esta línea. El control pasa al bloque catch.

    Catch e As Exception ' Ejecuta código que trata la excepción
    ' o informa al usuario de lo que ha ocurrido.
    Console.WriteLine("Error:")
    Console.WriteLine( e.Message ) ' Imprime el mensaje de error.
    Console.WriteLine( e.Source ) ' Nombre de la aplicación o del objeto
    ' que produjo el error
    Console.WriteLine( e.StackTrace ) ' Cadena que contiene el seguimiento
    ' de la pila para esta excepción
    Finally ' Esta sección se ejecuta independientemente del proceso anterior.
    Console.WriteLine()
    Console.WriteLine("Esta instrucción se imprime siempre")
    End Try
  9. Hasta este momento ha tratado el caso concreto de una excepción no específica. Sin embargo, si sabe de antemano qué tipo de excepción va a ocurrir, puede interceptar la excepción anticipada y procesarla en consecuencia. Entonces puede interceptar todas las demás excepciones y tratarlas. En el ejemplo siguiente se demuestra esto:

    ' Vamos a intentar realizar cierto procesamiento de archivos.
    ' Esto puede ocasionar varias excepciones posibles.
    ' Tenga en cuenta que puede utilizar determinadas excepciones para obtener información
    ' adicional acerca de la excepción, pero este ejemplo se centra en mostrar la ejecución
    ' de control para dichas excepciones.

    Try
    File.Create("c:/temp/test.txt") ' Puede fracasar por diversos motivos

    Catch ioe As System.IO.IOException ' Este error puede ocurrir si la carpeta Temp no existe.
    Console.WriteLine("Error de E/S. La carpeta c:\temp no existe")

    Catch se As System.Security.SecurityException ' No tiene el permiso apropiado para
    ' realizar esta acción.
    Console.WriteLine("No tiene los permisos de seguridad para realizar esta acción.")

    Catch e As Exception ' Interceptar todas las demás excepciones.
    Console.WriteLine( e.ToString() ) ' Imprimir la información de excepción estándar.
    End Try


    Como las configuraciones de los equipos pueden ser diferentes, puede que el ejemplo de este paso inicie o no una excepción. Si desea forzar una excepción de E/S, cambie la ruta de acceso a una carpeta que no exista en el equipo.

No hay opiniones de los usuarios. ¡Sé el primero en dar tu opinión! (No requiere registro)

¿Te gusta este truco? ¡Recomiéndaselo a un amigo!

     
     
     
     
     
     
Las direcciones de correo electrónico que se proporcionan en este servicio, solamente serán utilizadas con la finalidad de enviar la recomendación al destinatario. Ni tu dirección de correo ni la de tu amigo/a serán utilizadas para ningún otro propósito.
Trucos del mismo autor Más trucos del mismo autor
(Se muestran 10 de 23)
¡Y dale con los drivers no firmados!
Windows XP incorporó un sistema de firma digital para los controladores (o drivers). Para que un controlador sea aceptado por Windows XP sin problemas, éste debe poseer un certificado...
sigue leyendo
Sugerencia de MSN Hotmail
Es muy sencillo tener la opción de mantener una conversación instantánea en línea cuando compruebas tu correo electrónico. Simplemente agrega los contactos de MSN...
sigue leyendo
Empujar un objeto a su posición
Imaginemos que estás utilizando Microsoft Publisher 2002 y has agregado un logotipo al prospecto, pero te ha quedado un poco bajo. Para empujarlo exactamente al lugar que deseas sigue estos...
sigue leyendo
Etiquetas Inteligentes en Word
¿Sabes cómo continuar la numeración de forma sencilla con las Etiquetas Inteligentes? Algunas veces es necesario interrumpir una lista numerada para introducir un párrafo...
sigue leyendo
Cómo reciclar tablas de Access
¿Sabías que se pueden hacer copias de las tablas de Access sin necesidad de copiar la información que contienen?. Sigue estos...
sigue leyendo
Cómo guardar varios documentos adjuntos de forma simultánea
Cuando recibes un mensaje en Outlook que contiene varios archivos adjuntos, no tienes que abrirlos y guardarlos uno por uno. Puedes guardar varios documentos adjuntos al mismo lugar con una sola...
sigue leyendo
Cerrar el panel de tareas en Office XP
El panel de tareas es un área de Microsoft Office XP que muestra los comandos utilizados más comúnmente. Si no quieres utilizar el panel de tareas, puedes cerrarlo durante la...
sigue leyendo
Cómo dividir el texto de una celda en dos líneas
Puedes controlar dónde se divide el texto de una celda y cuántas veces lo hace para etiquetas o encabezados largos en la hoja de trabajo de Microsoft Excel del mismo modo que lo haces...
sigue leyendo
Insertar una letra capital en tu documento
Las letras capital son una excelente técnica para dar apariencia solemne a tus documentos de Word. Consisten en insertar la letra inicial de un párrafo en un tamaño mayor al del...
sigue leyendo
Cómo personalizar el formato de los comentarios
Cuando utilizas las vistas de Impresión o Web, Word 2002 te muestra comentarios en globos de distintos colores que aparecen a la derecha y que de forma automática asignan un color...
sigue leyendo

Copyright © 1999-2013 ABCdatos.com. Todos los derechos reservados.
Para información sobre privacidad, consulte la declaración de política de privacidad.
Contactar con ABCdatos.