Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Coloque quaisquer instruções de código que possam gerar ou lançar uma exceção em um try
bloco e coloque as instruções usadas para manipular a exceção ou exceções em um ou mais catch
blocos abaixo do try
bloco. Cada catch
bloco inclui o tipo de exceção e pode conter instruções adicionais necessárias para lidar com esse tipo de exceção.
No exemplo a seguir, um StreamReader abre um arquivo chamado data.txt e recupera uma linha do arquivo. Como o código pode lançar qualquer uma das três exceções, ele é colocado num bloco try
. Três catch
blocos capturam as exceções e as manipulam exibindo os resultados no console.
using System;
using System.IO;
public class ProcessFile
{
public static void Main()
{
try
{
using (StreamReader sr = File.OpenText("data.txt"))
{
Console.WriteLine($"The first line of this file is {sr.ReadLine()}");
}
}
catch (FileNotFoundException e)
{
Console.WriteLine($"The file was not found: '{e}'");
}
catch (DirectoryNotFoundException e)
{
Console.WriteLine($"The directory was not found: '{e}'");
}
catch (IOException e)
{
Console.WriteLine($"The file could not be opened: '{e}'");
}
}
}
Imports System.IO
Public Class ProcessFile
Public Shared Sub Main()
Try
Using sr As StreamReader = File.OpenText("data.txt")
Console.WriteLine($"The first line of this file is {sr.ReadLine()}")
End Using
Catch e As FileNotFoundException
Console.WriteLine($"The file was not found: '{e}'")
Catch e As DirectoryNotFoundException
Console.WriteLine($"The directory was not found: '{e}'")
Catch e As IOException
Console.WriteLine($"The file could not be opened: '{e}'")
End Try
End Sub
End Class
O Common Language Runtime (CLR) captura exceções não tratadas por catch
blocos. Se uma exceção for detetada pelo CLR, um dos seguintes resultados poderá ocorrer dependendo da configuração do CLR:
- Uma caixa de diálogo Depurar é exibida.
- O programa interrompe a execução e aparece uma caixa de diálogo com informações sobre a exceção.
- Um erro é impresso no fluxo de saída de erro padrão.
Observação
A maioria dos códigos pode lançar uma exceção, e algumas exceções, como OutOfMemoryException, podem ser lançadas pelo próprio CLR a qualquer momento. Embora os aplicativos não sejam obrigados a lidar com essas exceções, esteja ciente da possibilidade ao escrever bibliotecas para serem usadas por outras pessoas. Para obter sugestões sobre quando definir o código em um try
bloco, consulte Práticas recomendadas para exceções.