Cómo se utiliza en Visual Basic de control de excepciones estructurado.NET o en Visual Basic de 2005

Seleccione idioma Seleccione idioma
Id. de artículo: 315965 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se muestra cómo se utiliza en Visual Basic de control de excepciones estructurado.NET o en Visual Basic de 2005.

Requisitos

La lista siguiente describe el hardware recomendado, software, infraestructura de red y los service packs que necesita:
  • Visual Basic.NET o de Visual Basic de 2005
En este artículo se supone que está familiarizado con los temas siguientes:
  • Visual Basic.NET o de Visual Basic de 2005
  • Visual Studio de Microsoft.NET o Microsoft 2005 Visual Studio

Control estructurado de excepciones

Visual Basic.NET o Visual Basic 2005 ofrece control de excepciones estructurado que proporciona una alternativa potente, más legible para el control de errores de "On Error Goto", que está disponible en versiones anteriores de Microsoft Visual Basic. Control estructurado de excepciones es más eficaz porque permite anidar los controladores de error dentro de otros controladores de errores en el mismo procedimiento. Además, control estructurado de excepciones utiliza una sintaxis de bloque similar a la Si...Else...End If instrucción. Esto hace que Visual Basic.NET y Visual Basic 2005 código más legible y fácil de mantener.

Nota: Visual Basic.NET o Visual Basic 2005 conserva la sintaxis "On Error Goto" para la compatibilidad con versiones anteriores. Todavía puede utilizar esta sintaxis en Visual Basic.Código de red o de Visual Basic de 2005. Sin embargo, no se puede combinar el control estructurado de excepciones y las instrucciones On Error en el mismo procedimiento. Cuando se escribe código nuevo, Microsoft recomienda que utilice el control de excepciones estructurado.

La sintaxis básica de control estructurado de errores es como sigue:
Try
   'Code that may raise an error.
Catch
   'Code to handle the error.
Finally
   'Code to do any final clean up.
End Try
				
Las declaraciones de probar y End Try son necesarias. Las instrucciones Catch y Finally no son necesarias, aunque debe incluir al menos uno de ellos en el código. También puede especificar varias instrucciones Catch para que cada bloque Catch controla un error específico.

Detectar una excepción

  1. Iniciar Visual Studio.NET o Visual Studio de 2005.
  2. Crear un nuevo proyecto de aplicación de consola en Visual Basic.NET o en Visual Basic de 2005.
  3. En el procedimiento Sub Main , agregue el código siguiente:
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try
    					
  4. En el menú Depurar , haga clic en iniciar para ejecutar la aplicación. El código intenta dividir un número por cero. Se trata de una operación no válida que genera una división por cero excepción. Afortunadamente, el bloque Catch detecta este error y la ventana de consola muestra el mensaje de error siguiente:
    A run-time error has occurred
    						
  5. Cierre la ventana de consola.

Capturar múltiples excepciones

Esta sección muestra cómo utilizar varias instrucciones Catch para controlar los errores diferentes.
  1. Abra el proyecto de aplicación de consola que creó en la sección anterior.
  2. En el procedimiento Sub Main , reemplace el código que copió en la sección anterior con el siguiente código:
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Finally
      Console.ReadLine()
    End Try
    						
    Este código incluye dos bloques Catch : uno para detectar la división anterior por error cero y otro para detectar el error de desbordamiento de nuevo.
  3. En el menú Depurar , haga clic en iniciar para ejecutar la aplicación. La ventana de consola muestra el mensaje de error siguiente:
    Error: Overflow
    						
  4. Cierre la ventana de consola.
  5. Debido a que siempre no se puede prever cada error que puede producirse, puede agregar un bloque Catch todos para las excepciones no anticipadas. Por ejemplo, agregue el siguiente código antes de la instrucción Finally para capturar los errores no previstos y mostrar el mensaje de error apropiado:
    Catch exc As Exception
    Console.WriteLine("Error: " & exc.Message)
    					
  6. En el menú archivo , haga clic en Cerrar solución.

Una excepción

Control estructurado de excepciones, utiliza la instrucción Catch para detectar una excepción. Control estructurado de excepciones también proporciona una forma de iniciar una excepción. Por ejemplo, es útil producir una excepción cuando se realiza una validación de datos dentro de un procedimiento de Propiedad Set porque desea generar un error si se infringe una regla de negocio.
  1. Iniciar Visual Studio.NET o Visual Studio de 2005.
  2. Crear un nuevo proyecto de aplicación de consola en Visual Basic.NET o en Visual Basic de 2005.
  3. En el menú proyecto , haga clic en Agregar clase.
  4. En la ventana Agregar nuevo elemento , escriba clsPerson.vb en el texto de nombre de cuadro y, a continuación, haga clic en Aceptar.
  5. Agregue el código siguiente dentro de la clsPerson de Public Class...Fin de la clase las instrucciones:
    Private mintAge As Integer
    
    Public Property Age() As Integer
      Get
        Age = mintAge
      End Get
      Set(ByVal Value As Integer)
        If Value >= 0 Then
          mintAge = Value
        Else
          Throw New ArgumentException ("Age cannot be negative")
        End If
      End Set
    End Property
    						
    Este código crea una propiedad Age . Debido a que una persona no puede tener una antigüedad negativa, se produce un error si el usuario de la clase intenta establecer la edad a un número que es menor que cero.
  6. En el procedimiento Sub Main de Module1.vb, agregue el código siguiente:
    Dim p As New clsPerson()
    
    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
    					
  7. En el menú Depurar , haga clic en iniciar para ejecutar la aplicación. La ventana de consola muestra el mensaje de error siguiente:
    Age cannot be negative
    						
  8. Cierre la ventana de consola.

Código completo

Detectar una excepción

Module Module1

  Sub Main()
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try

  End Sub

End Module
				

Capturar múltiples excepciones

Module Module1

  Sub Main()
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Catch exc As Exception
      Console.WriteLine("Error: " & exc.Message)
    Finally
      Console.ReadLine()
    End Try


  End Sub

End Module
				

Una excepción

Module Module1

  Sub Main()
    Dim p As New clsPerson()

    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
  End Sub

End Module

Public Class clsPerson

  Private mintAge As Integer

  Public Property Age() As Integer
    Get
      Age = mintAge
    End Get
    Set(ByVal Value As Integer)
      If Value >= 0 Then
        mintAge = Value
      Else
        Throw New ApplicationException("Age cannot be negative")
      End If
    End Set
  End Property

End Class
				

REFERENCIAS

Para obtener más información, consulte los siguientes sitios Web de Microsoft:
Error de control de VB.NET forma: Viven con excepciones (un artículo De Visual Basic Developer )
http://msdn.Microsoft.com/en-us/library/aa227603 (v=vs.60) .aspx

Cómo se puede detectar una excepción
http://msdn.Microsoft.com/en-us/library/ys1b32h3 (v=vs.80) .aspx

Cómo se puede producir una excepción
http://msdn.Microsoft.com/en-us/library/z7w9ff54 (v=vs.80) .aspx

Propiedades

Id. de artículo: 315965 - Última revisión: viernes, 15 de junio de 2012 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palabras clave: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 315965

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com