Partilhar via


Como: Usar o bloco Try/Catch para capturar exceções

Coloque as seções do código que podem lançar exceções em um bloco try e coloque código que trata exceções em um bloco catch. O bloco catch é uma série de instruções que começam com a palavra-chave catch, seguido por um tipo de exceção e uma ação a ser tomada.

Observação

Quase qualquer linha de código pode causar uma exceção, especialmente exceções que são geradas pelo Common Language Runtime em si, como OutOfMemoryException e StackOverflowException.A maioria dos aplicativos não tem que lidar com essas exceções, mas você deve estar ciente dessa possibilidade ao escrever bibliotecas para ser usadas por outras pessoas.Para obter sugestões sobre quando definir código em um bloco try, consulte Práticas recomendadas para tratamento de exceções.

O exemplo de código a seguir usa um bloco try/catch para capturar uma possível exceção. O método Main contém um bloco try com uma instrução StreamReader que abre um arquivo de dados chamado data.txt e grava uma sequência de caracteres a partir do arquivo. Após o bloco Try está um bloco catch que captura qualquer exceção que resulta do bloco try.

Exemplo

Imports System
Imports System.IO

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())
        sr.Close()
        Catch e As Exception
            Console.WriteLine("An error occurred: '{0}'", e)
        End Try
    End Sub
End Class
using System;
using System.IO;

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());
        sr.Close();
        }
        catch (Exception e)
        {
            Console.WriteLine("An error occurred: '{0}'", e);
        }
    }
}
using namespace System;
using namespace System::IO;

public ref 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());
        sr->Close();
        }
        catch (Exception^ e)
        {
            Console::WriteLine("An error occurred: '{0}'", e);
        }
    }
};

int main()
{
    ProcessFile::Main();
}

Este exemplo ilustra uma instrução catch básica que irá detectar qualquer exceção. Em geral, é uma boa prática de programação capturar um tipo específico de exceção em vez de usas a instrução básica catch . Para obter mais informações sobre captura de exceções específicas, consulte Usando exceções específicas em um bloco catch.

Consulte também

Tarefas

Como: Usar exceções específicas em um bloco Catch

Como: Lançar exceções explicitamente

Como: Criar exceções definida pelo usuário

Como: Usar blocos Finally

Outros recursos

Fundamentos da Manipulação de Exceções