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