Menu
Coddy logo textTech

Multiple Catch Blocks

Parte de la sección Lógica y Flujo del Journey de C# de Coddy — lección 25 de 66.

Múltiples bloques catch le permiten manejar diferentes tipos de excepciones con código específico para cada tipo de excepción.

Comienza con un bloque try básico:

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

Agrega un bloque catch para una excepción específica:

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

Puedes añadir múltiples bloques catch para manejar diferentes excepciones:

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);
}

El primer bloque catch que coincida se ejecutará. Ordena tus bloques catch desde los tipos de excepción más específicos a los más generales.

challenge icon

Desafío

Fácil

Crea un método llamado DivideNumbers que reciba dos parámetros de tipo string:

  • numeratorStr: una cadena que representa el numerador
  • denominatorStr: una cadena que representa el denominador

El método debe:

  1. Intentar convertir ambas cadenas a enteros
  2. Intentar dividir el numerador por el denominador
  3. Devolver el resultado como un entero
  4. Manejar FormatException imprimiendo "Invalid format" y devolviendo 0
  5. Manejar DivideByZeroException imprimiendo "Cannot divide by zero" y devolviendo 0
  6. Manejar cualquier otra excepción con un bloque catch general que imprima "An error occurred" y devuelva 0

Pruébalo tú mismo

using System;

public class Program
{
    public static int DivideNumbers(string numeratorStr, string denominatorStr)
    {
        // Escribe tu código aquí
    }
    
    public static void Main(string[] args)
    {
        string numeratorStr = Console.ReadLine();
        string denominatorStr = Console.ReadLine();
        
        int result = DivideNumbers(numeratorStr, denominatorStr);
        Console.WriteLine("Result: " + result);
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo