Compartir a través de


Cómo: Utilizar el bloque Try/Catch para detectar excepciones

Actualización: noviembre 2007

Coloque las secciones del código que pueden producir excepciones en un bloque Try y el código que controla excepciones en un bloque Catch. El bloque Catch es una serie de instrucciones que comienzan con la palabra clave catch seguida por un tipo de excepción y la acción que se debe tomar.

Nota:

Prácticamente cualquier línea de código puede originar una excepción, especialmente las excepciones que produce el propio Common Language Runtime, como OutOfMemoryException y StackOverflowException. La mayoría de las aplicaciones no tienen que encargarse de estas excepciones, pero se debe ser consciente de esta posibilidad al escribir bibliotecas que van a utilizar otros usuarios. Para obtener sugerencias de cuándo establecer el código en un bloque Try, vea Procedimientos recomendados para controlar excepciones.

En el ejemplo de código siguiente se usa un bloque try/catch para detectar una posible excepción. El método Main contiene un bloque Try con una instrucción StreamReader que abre un archivo de datos denominado data.txt y escribe una cadena del archivo. Después del bloque Try hay un bloque Catch que detecta cualquier excepción que resulte del bloque Try.

Ejemplo

Option Explicit
Option Strict
Imports System
Imports System.IO
Imports System.Security.Permissions
<assembly: FileIOPermissionAttribute(SecurityAction.RequestMinimum, All := "c:\data.txt")>

Public Class ProcessFile
   Public Shared Sub Main()
      Try
         Dim sr As StreamReader = File.OpenText("data.txt")
         Console.WriteLine("The first line of this file is {0}", sr.ReadLine())
      Catch e As Exception
         Console.WriteLine("An error occurred: '{0}'", e)
      End Try
   End Sub
End Class
using System;
using System.IO;
using System.Security.Permissions;
// Security permission request.
[assembly:FileIOPermissionAttribute(SecurityAction.RequestMinimum, All = @"c:\data.txt")]
public class ProcessFile {
    public static void Main() {
        try {
            StreamReader sr = File.OpenText("data.txt");
            Console.WriteLine("The first line of this file is {0}", sr.ReadLine());    
        }
        catch(Exception e) {
            Console.WriteLine("An error occurred: '{0}'", e);
        }
    }
}

Este ejemplo ilustra una instrucción Catch básica que detectará cualquier excepción. Por lo general, se recomienda, cuando se esté programando, detectar un tipo de excepción específico en lugar de utilizar la instrucción Catch básica. Para obtener información sobre la detección de excepciones específicas, vea Utilizar excepciones específicas en un bloque Catch.

Vea también

Tareas

Cómo: Utilizar excepciones específicas en un bloque Catch

Cómo: Iniciar excepciones explícitamente

Cómo: Crear excepciones definidas por el usuario

Cómo: Utilizar bloques Finally

Otros recursos

Fundamentos del control de excepciones