IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Try/Catch em C# (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 23 de abril de 2026

Se você é iniciante em programação C#, provavelmente já ouviu falar bastante do termo "instrução try-catch". Neste tutorial, vamos mergulhar no mundo do tratamento de exceções, com foco nos blocos catch, e explorar como você pode usar as instruções try e catch para tornar seu código mais resistente a erros. Ao longo do caminho, forneceremos muitos exemplos da vida real para ajudar a consolidar seu entendimento.

O que são exceções e por que tratá-las?

Em C#, uma exceção representa uma ocorrência que acontece durante a execução de um programa e que interfere no fluxo normal de execução de instruções. Quando ocorre uma exceção, o fluxo do programa é desviado e, se a exceção não for tratada, o programa será encerrado abruptamente.

O tratamento de exceções é uma forma de antecipar e gerenciar esses eventos disruptivos, permitindo que seu programa se recupere de problemas inesperados e continue funcionando conforme o esperado. Ao usar blocos try e catch, você garante que seu código lide com erros de forma adequada e forneça aos usuários um feedback significativo.

O bloco Try

Um bloco try é um segmento de código que você espera que possa gerar exceções. Ao envolver seu código em um bloco try, você está dizendo ao compilador que deseja tratar possíveis exceções que possam surgir dentro desse bloco.

Aqui está um exemplo básico de como usar um bloco try:

try
{
    // Code that may generate an exception
}
catch (Exception ex)
{
    // Handle the exception
}

Bloco Catch para capturar exceções

A instrução catch é usada em conjunto com um bloco try para lidar com exceções. Quando ocorre uma exceção dentro de um bloco try, a execução do programa salta para o bloco catch apropriado, onde você pode especificar o que o programa deve fazer em resposta à exceção.

Para capturar uma exceção, você precisa criar um bloco catch imediatamente após o bloco try. Um bloco catch normalmente inclui um parâmetro que representa a exceção capturada.

Eis um exemplo de uma declaração de captura em ação:

try
{
    int result = 10 / 0;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("An error occurred: " + ex.Message);
}

Neste exemplo, o código dentro do bloco try tenta dividir por zero, o que gerará um DivideByZeroException. O bloco catch então trata a exceção, exibindo uma mensagem para o usuário.

Vários blocos catch para lidar com diferentes exceções

Às vezes, seu bloco try pode gerar diferentes tipos de exceções possíveis. Nesses casos, você pode usar vários blocos catch para lidar com cada tipo de exceção separadamente.

O exemplo a seguir demonstra o uso de múltiplos blocos catch:

try
{
    int[] numbers = new int[7];
    numbers[12] = 70; // This line will throw an exception
}
catch (IndexOutOfRangeException ex)
{
    Console.WriteLine("An index out of range error occurred: " + ex.Message);
}
catch (Exception e)
{
    Console.WriteLine("An unexpected error occurred: " + e.Message);
}

Neste exemplo, o código dentro do bloco try tenta atribuir um valor a um índice de matriz que não existe, gerando um IndexOutOfRangeException. O primeiro bloco catch trata essa exceção específica, enquanto o segundo bloco catch captura qualquer outra exceção que possa ocorrer.

Lembre-se: ao usar vários blocos catch, sempre os ordene do tipo de exceção mais específico para o mais geral.

Filtros de exceção: adicionando condições aos blocos catch

Os filtros de exceção permitem adicionar condições aos blocos de captura, possibilitando a captura de exceções somente se uma determinada condição for atendida. Para usar um filtro de exceção, adicione a palavra-chave when seguida de uma condição na sua instrução catch.

O exemplo a seguir demonstra o uso de filtros de exceção:

try
{
    int result = 10 / 0;
}
catch (DivideByZeroException ex) when (ex.Message.Contains("divide"))
{
    Console.WriteLine("An error occurred: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("A different divide by zero error occurred: " + ex.Message);
}

No exemplo acima, o primeiro bloco catch irá tratar o DivideByZeroException somente se a mensagem de exceção contiver a palavra "divide". Caso a condição não seja atendida, o segundo bloco catch tratará a exceção.

O bloco finally garante a execução do código.

Em alguns casos, você pode querer garantir que um determinado trecho de código seja executado, independentemente de ocorrer ou não uma exceção. Para conseguir isso, você pode usar um bloco finally.

Um bloco finally é colocado após os blocos try e catch e é sempre executado, independentemente de ocorrer uma exceção.

Aqui está um exemplo que demonstra o uso de um bloco finally:

try
{
    int result = 10 / 2;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("An error occurred: " + ex.Message);
}
finally
{
    Console.WriteLine("This line will always be executed.");
}

No exemplo acima, mesmo que o código dentro do bloco try não gere uma exceção, o bloco finally ainda será executado.

Exceções personalizadas: adaptando as exceções às suas necessidades.

Às vezes, você pode querer criar suas próprias exceções personalizadas para lidar com exceções específicas em seu código. Para fazer isso, você pode criar uma nova classe que herda da classe Exception.

Aqui está um exemplo de como criar uma exceção personalizada:

public class CustomException : Exception
{
    public CustomException(string errorMessage) : base(errorMessage)
    {
    }
}

Agora, você pode usar essa exceção personalizada em seus blocos try e catch, assim:

try
{
    throw new CustomException("This is a custom exception.");
}
catch (CustomException ex)
{
    Console.WriteLine("A custom exception occurred: " + ex.Message);
}

Neste exemplo, o bloco try lança uma instância de CustomException, que é então capturada e tratada pelo bloco catch.

IronPDF: Integrando a funcionalidade de PDF com o tratamento de exceções.

Saiba mais sobre o IronPDF , uma biblioteca popular para criar, editar e extrair conteúdo de arquivos PDF em C#. Nesta seção, exploraremos como você pode integrar o IronPDF à sua abordagem de tratamento de exceções com bloco try-catch para lidar com possíveis erros de forma adequada.

Instalando o IronPDF

Para começar, você precisará primeiro instalar o pacote NuGet IronPDF . Você pode fazer isso usando o Console do Gerenciador de Pacotes:

PM > Install-Package IronPdf

Ou você pode pesquisar por "IronPDF" na caixa de diálogo "Gerenciar Pacotes NuGet " no Visual Studio.

Criando um PDF com o IronPDF e lidando com exceções

Digamos que você queira criar um arquivo PDF a partir de uma string HTML com o IronPDF . Como o processo de criação de um PDF pode potencialmente gerar exceções, você pode usar blocos try-catch para tratá-las. Aqui está um exemplo de como você pode criar um PDF usando o IronPDF e tratar exceções com try-catch:

using IronPdf;
using System;

try
{
    var renderer = new ChromePdfRenderer();
    string html = "Hello, World!";
    PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
    PDF.SaveAs("output.PDF");
    Console.WriteLine("PDF created successfully.");
}
catch (Exception ex)
{
    Console.WriteLine("An unexpected error occurred: " + ex.Message);
}

Neste exemplo, o bloco try contém o código para criar um PDF usando o IronPDF. Caso ocorra uma exceção durante o processo, o bloco catch tratará o erro, exibindo uma mensagem de erro relevante para o usuário.

Extraindo texto de um PDF e tratando exceções

Você também pode querer extrair texto de um arquivo PDF usando o IronPDF. Assim como no exemplo anterior, você pode usar blocos try-catch para tratar potenciais exceções.

Aqui está um exemplo de como extrair texto de um arquivo PDF usando o IronPDF e lidar com exceções:

using IronPdf;
using System;
using System.IO;

try
{
    string pdfPath = "input.PDF";
    if (File.Exists(pdfPath))
    {
        PdfDocument PDF = PdfDocument.FromFile(pdfPath);
        string extractedText = PDF.ExtractAllText();
        Console.WriteLine("Text extracted successfully: " + extractedText);
    }
    else
    {
        Console.WriteLine("The specified PDF file does not exist.");
    }
}
catch (Exception ex)
{
    Console.WriteLine("An unexpected error occurred: " + ex.Message);
}

Try/Catch em C# (Como Funciona para Desenvolvedores) Figura 1

Neste exemplo, o bloco try contém o código para extrair texto de um PDF usando o IronPDF. Caso ocorra uma exceção durante o processo, o bloco catch tratará o erro, exibindo uma mensagem relevante para o usuário.

Conclusão

Ao combinar o IronPDF com sua abordagem de tratamento de exceções try-catch, você pode criar aplicativos robustos que lidam com erros de forma adequada ao trabalhar com arquivos PDF. Isso não só melhora a estabilidade dos seus aplicativos, como também aprimora a experiência geral do usuário.

Lembre-se sempre de considerar possíveis exceções ao trabalhar com bibliotecas externas como o IronPDF e tratá-las adequadamente usando instruções try e catch. Dessa forma, você pode garantir que seus aplicativos sejam resilientes e fáceis de usar, mesmo ao lidar com problemas inesperados.

O IronPDF oferece um período de teste gratuito da sua biblioteca , permitindo que você explore suas funcionalidades sem qualquer compromisso. Se você decidir continuar usando o IronPDF após o período de teste, o licenciamento começa a partir de $999.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.