La estructura try

Solo disponible en BuenasTareas
  • Páginas : 5 (1110 palabras )
  • Descarga(s) : 0
  • Publicado : 27 de diciembre de 2010
Leer documento completo
Vista previa del texto
Diseño y Realización de Servicios de Presentación en Entornos Gráficos – 2º D.A.I.

La estructura Try...End Try Esta estructura de control del lenguaje, proporciona el medio para definir un bloque de código sensible a errores, y los correspondientes manipuladores de excepciones, en función del tipo de error producido. El Código fuente 391 muestra su sintaxis. Try ' código que puede provocarerrores ' .... ' .... [Catch [Excepcion [As TipoExcepcionA]] [When Expresión] ' respuesta a error de tipo A ' .... ' .... [Exit Try] ] [Catch [Excepcion [As TipoExcepcionN]] [When Expresión] ' respuesta a error de tipo N ' .... ' .... [Exit Try] ] [Finally ' código posterior al control de errores
' .... ' .... ]

End Try Código fuente 391 Analicemos con detalle los principales elementos de estaestructura. En primer lugar nos encontramos con su declaración mediante la palabra clave Try. Todo el código que escribimos a partir de dicha palabra clave, y hasta la primera sentencia Catch, es el código que definimos como sensible a errores, o dicho de otro modo, el bloque de instrucciones sobre las que deseamos que se active el control de errores cuando se produzca algún fallo en su ejecución. Acontinuación, establecemos cada uno de los manipuladores de excepción mediante la palabra clave Catch. Junto a esta palabra clave, situaremos de forma opcional, un identificador que contendrá el objeto con la excepción generada. Finalmente, y también de modo opcional, con la palabra clave When, especificaremos una condición para la captura del objeto de excepción. Podemos escribir uno o variosmanipuladores Catch dentro de una estructura de control Try...End Try. Cada vez que se produzca un error, el flujo de la ejecución saltará a la sentencia Catch más acorde con el tipo de excepción generada por el error, siempre y cuando hayamos situado varios manipuladores de excepciones en el controlador de errores. Tal y como acaba de ver el lector en la sintaxis de la estructura Try...End Try, esposible utilizar Match de un modo genérico, es decir, sin establecer qué tipo de excepción se ha producido. Este es el tipo de control de errores más sencillo que podemos implementar, aunque también el más limitado, ya que sólo

Diseño y Realización de Servicios de Presentación en Entornos Gráficos – 2º D.A.I.

podemos tener un manipulador de excepciones. Veamos un ejemplo en el Código fuente392. Public Sub Main() Dim sValor As String Dim iNumero As Integer Try ' comienza el control de errores Console.WriteLine("Introducir un número") sValor = Console.ReadLine() ' si no hemos introducido un número... iNumero = sValor ' ...aquí se producirá un error... ' ...y no llegaremos a esta parte del código iNumero = iNumero + 1000 Catch ' si se produce un error, se genera una excepción ' quecapturamos en este bloque de código ' manipulador de excepción, definido por Catch Console.WriteLine("Error al introducir el número" & _ ControlChars.CrLf & _ "El valor {0} es incorrecto", _ sValor) End Try ' resto del código del procedimiento ' .... Console.ReadLine() End Sub Código fuente 392 Tanto si se produce un error como si no, la sentencia Finally de la estructura Try...End Try, nos permiteescribir un bloque de código que será ejecutado al darse una condición de error, o bajo ejecución normal del procedimiento. El Código fuente 393 muestra el mismo ejemplo anterior, pero introduciendo un bloque Finally. Pruebe el lector alternativamente, a forzar un error, y a ejecutar sin errores este fuente; en ambos casos verá que el bloque Finally es ejecutado. Para completar el ejemplo, tras laestructura Try...End Try se han escrito varias líneas de código potencialmente problemáticas; en el caso de que se produzca un error, la ejecución será cancelada, al no estar dichas líneas situadas en un controlador de errores. Public Sub Main() Dim sValor As String Dim iNumero As Integer Try ' comienza el control de errores Console.WriteLine("Introducir un número") sValor = Console.ReadLine()...
tracking img