Menu
Coddy logo textTech

Múltiplos blocos Catch

Parte da seção Lógica & Fluxo do Journey de C# da Coddy. Lição 25 de 66.

Vários blocos catch permitem lidar com diferentes tipos de exceções, com código específico para cada tipo de exceção.

Comece com um bloco try básico:

try
{
    int number = int.Parse("abc");
}

Adicione um bloco catch para uma exceção específica:

try
{
    int number = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}

Você pode adicionar vários blocos catch para lidar com diferentes exceções:

try
{
    int number = int.Parse("abc");
    int result = 10 / number;
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}

O primeiro bloco catch correspondente será executado. Ordene seus blocos catch dos tipos de exceção mais específicos aos mais gerais.

challenge icon

Desafio

Fácil

Crie um método chamado DivideNumbers que receba dois parâmetros do tipo string:

  • numeratorStr: uma string que representa o numerador
  • denominatorStr: uma string que representa o denominador

O método deve:

  1. Tentar analisar ambas as strings como números inteiros
  2. Tentar dividir o numerador pelo denominador
  3. Retornar o resultado como um número inteiro
  4. Lidar com FormatException imprimindo "Invalid format" e retornando 0
  5. Lidar com DivideByZeroException imprimindo "Cannot divide by zero" e retornando 0
  6. Lidar com quaisquer outras exceções usando um bloco catch geral que imprime "An error occurred" e retorna 0

Experimente você mesmo

using System;

public class Program
{
    public static int DivideNumbers(string numeratorStr, string denominatorStr)
    {
        // Escreva seu código aqui
    }
    
    public static void Main(string[] args)
    {
        string numeratorStr = Console.ReadLine();
        string denominatorStr = Console.ReadLine();
        
        int result = DivideNumbers(numeratorStr, denominatorStr);
        Console.WriteLine("Result: " + result);
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de C# online