IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

C# Captura de Múltiplas Exceções (Como Funciona para Desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Em C#, o tratamento adequado de exceções é essencial. Este tutorial mostra como usar um bloco try-catch com várias cláusulas catch. Vamos abordar como capturar múltiplos tipos de exceções, usar filtros de exceção e garantir que os recursos sejam limpos com finally. O objetivo é ajudá-lo a criar aplicações C# robustas e tolerantes a erros.

Ao aprender a detectar vários tipos de exceções, você pode adaptar as respostas a problemas específicos, melhorando a confiabilidade do seu programa. Também abordaremos como aplicar condições a blocos catch com a palavra-chave when, permitindo um tratamento de erros mais preciso.

Este guia fornecerá métodos para capturar exceções e lidar com erros comuns e complexos de forma eficiente em seus projetos de programação. Também exploraremos o IronPDF no contexto do tratamento de exceções.

O que é tratamento de exceções?

O tratamento de exceções em C# é um método usado para lidar com erros de tempo de execução, evitar o encerramento abrupto de um programa e gerenciar situações inesperadas que ocorrem durante a execução de um programa. Os componentes principais do tratamento de exceções incluem os blocos try, catch e finally.

Basic Structure of Try-Catch in C#

O bloco try inclui código que pode potencialmente desencadear uma exceção, enquanto o bloco catch é responsável por gerenciar a exceção caso ela ocorra. O bloco finally é opcional e executa o código após os blocos catch, independentemente de uma exceção ter sido lançada ou não. Eis uma estrutura simples:

try
{
    // Code that may throw an exception
}
catch (Exception e)
{
    // Code to handle the exception
}
finally
{
    // Code that executes after try and catch, regardless of an exception
}

Capturando múltiplas exceções

Em aplicações do mundo real, uma única operação pode lançar exceções de vários tipos. Para lidar com isso, o C# permite que você defina múltiplos blocos catch para um único bloco try. Cada bloco catch pode especificar um tipo de exceção diferente para lidar com todas as exceções.

Por que capturar múltiplas exceções?

A captura de múltiplas exceções é essencial para o tratamento detalhado de erros, em que as ações dependem do erro específico ocorrido. Isso permite que os desenvolvedores lidem com cada exceção de uma maneira apropriada para o contexto daquele erro específico.

Como implementar múltiplos blocos catch

Aqui está um exemplo de como implementar um único bloco catch para capturar vários tipos de exceção:

try
{
    // Code that may throw multiple types of exceptions
    int[] numbers = { 1, 2, 3 };
    Console.WriteLine(numbers[5]); // This will throw an IndexOutOfRangeException
}
catch (IndexOutOfRangeException ex)
{
    Console.WriteLine("An index was out of range: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Can't divide by Zero: " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("Error: " + ex.Message);
}

Neste código, exceções específicas como IndexOutOfRangeException e DivideByZeroException são capturadas por seus respectivos blocos catch. Qualquer outro tipo de exceção é capturado pelo bloco catch genérico Exception.

Utilizando filtros de exceção com a palavra-chave when

O C# também oferece suporte a filtros de exceção que permitem especificar uma condição dentro do bloco catch. Este recurso usa a palavra-chave when para fornecer mais controle sobre quais exceções capturar com base na condição avaliada em tempo de execução.

Aqui está como você pode usar a palavra-chave when para adicionar filtros de exceção:

try
{
    // Code that may throw an exception
    throw new InvalidOperationException("Invalid operation occurred", new Exception("Inner exception"));
}
catch (Exception ex) when (ex.InnerException != null)
{
    Console.WriteLine("Exception with inner exception caught: " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("Exception caught: " + ex.Message);
}

O papel do bloco Finally

O bloco finally é usado para executar código após a conclusão dos blocos try e qualquer bloco catch. É útil para liberar recursos, como fechar fluxos de arquivos ou conexões de banco de dados, independentemente de ter ocorrido uma exceção.

try
{
    // Code that might throw an exception
}
catch (Exception e)
{
    // Handle the exception
}
finally
{
    // Cleanup code, executed after try/catch
    Console.WriteLine("Cleanup code runs here.");
}

Introdução ao IronPDF

IronPDF é uma biblioteca abrangente projetada para desenvolvedores C# que trabalham com aplicações .NET . Isso ajuda os desenvolvedores a manipular, gerenciar e criar arquivos PDF diretamente do HTML . Não requer uma dependência externa para funcionar.

Você pode realizar qualquer operação em PDF sem usar e instalar o Adobe Acrobat. O IronPDF suporta diversas funcionalidades de PDF, como edição, mesclagem, divisão e proteção de documentos PDF com criptografia e assinaturas digitais. Os desenvolvedores podem utilizar o IronPDF em diversos tipos de aplicativos, incluindo aplicativos web, aplicativos desktop e serviços.

Destaque:

A principal característica do IronPDF é a conversão de HTML para PDF , que preserva tanto o layout quanto o estilo. É perfeito para gerar PDFs a partir de conteúdo da web, seja para relatórios, faturas ou documentação. Arquivos HTML, URLs e strings HTML podem ser convertidos em arquivos PDF.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Exemplo de código

Aqui está um exemplo simples em C# usando IronPDF para criar um PDF a partir de HTML, com tratamento de erros para vários tipos de exceções. Este exemplo pressupõe que você tenha o IronPDF instalado em seu projeto. Execute este comando no console do NuGet para instalar o IronPDF:

PM > Install-Package IronPdf

Aqui está o código:

using IronPdf;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Set your IronPDF license key, if applicable.
        License.LicenseKey = "License-Key";
        var renderer = new ChromePdfRenderer();
        
        try
        {
            // Convert HTML to PDF
            var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
            pdf.SaveAs("Exceptions.pdf");
            Console.WriteLine("PDF successfully created.");
        }
        catch (IronPdf.Exceptions.IronPdfProductException ex)
        {
            // Handle PDF generation errors
            Console.WriteLine("Failed to generate PDF: " + ex.Message);
        }
        catch (System.IO.IOException ex)
        {
            // Handle IO errors (e.g., disk I/O errors)
            Console.WriteLine("IO Exception: " + ex.Message);
        }
        catch (Exception ex)
        {
            // Handle other errors
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}

Ao executarmos esse código, essa mensagem aparece na linha de comando.

C# Captura Múltiplas Exceções (Como Funciona Para Desenvolvedores): Figura 1

E este é o arquivo PDF gerado por este código:

C# Captura Múltiplas Exceções (Como Funciona Para Desenvolvedores): Figura 2

Certifique-se de testar isso em um ambiente onde o IronPDF esteja configurado corretamente e modifique o conteúdo HTML conforme necessário para sua aplicação. Isso ajudará você a gerenciar erros de forma eficiente, melhorando a confiabilidade de suas tarefas de geração de PDFs.

Conclusão

O tratamento de múltiplas exceções em C# é um recurso poderoso que oferece capacidades robustas de tratamento de erros em suas aplicações. Usando múltiplos blocos catch, filtros de exceção e o bloco finally, você pode criar uma aplicação resiliente e estável que lida com diferentes erros graciosamente e mantém sua integridade sob várias condições de erro.

Essa compreensão e implementação abrangentes do tratamento de múltiplas exceções garantem que seus aplicativos estejam bem preparados para lidar com situações inesperadas de forma eficaz. IronPDF oferece uma avaliação gratuita 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.