Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

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

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
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.

back to the top

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
back to the top

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.

back to the top

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 = 0Dim b As Integer = 0Dim c As Integer = 0Try  a = b \ cCatch 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.
back to the top

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 = 2147483647Dim b As Integer = 0Dim c As Integer = 0Try  a += 1Catch 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 ExceptionConsole.WriteLine("Error: " & exc.Message)					
  6. En el menú archivo , haga clic en Cerrar solución.
back to the top

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 IntegerPublic 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 SetEnd 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 = -1Catch 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.
back to the top

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 SubEnd Module				
back to the top

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 SubEnd Module				
back to the top

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 SubEnd ModulePublic 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 PropertyEnd Class				
back to the top

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

back to the top

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 315965 - Última revisión: 06/15/2012 08:22:00 - Revisión: 2.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtes
Comentarios
html>mp;t=">