Menu
Coddy logo textTech

Múltiples bloques Catch

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

Los bloques catch múltiples te permiten manejar distintos 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");
}

Añade 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 varios bloques catch para gestionar distintas 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);
}

Se ejecutará el primer bloque catch coincidente. Ordena los bloques catch del tipo de excepción más específico al más general.

challenge icon

Desafío

Fácil

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

  • numeratorStr: un string que representa el numerador
  • denominatorStr: un string que representa el denominador

El método debe:

  1. Intentar analizar ambas cadenas como enteros
  2. Intentar dividir el numerador entre 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

Practica por tu cuenta: Compilador de C# online