Menu
Coddy logo textTech

Blocchi catch multipli

Fa parte della sezione Logica e flusso del percorso C# di Coddy. Lezione 25 di 66.

Più blocchi catch ti consentono di gestire diversi tipi di eccezioni con codice specifico per ciascun tipo di eccezione.

Inizia con un blocco try di base:

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

Aggiungi un blocco catch per un'eccezione specifica:

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

Puoi aggiungere più blocchi catch per gestire eccezioni diverse:

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

Verrà eseguito il primo blocco catch corrispondente. Ordina i blocchi catch dal tipo di eccezione più specifico a quello più generale.

challenge icon

Sfida

Facile

Crea un metodo denominato DivideNumbers che accetti due parametri stringa:

  • numeratorStr: una stringa che rappresenta il numeratore
  • denominatorStr: una stringa che rappresenta il denominatore

Il metodo dovrebbe:

  1. Provare a convertire entrambe le stringhe in interi
  2. Provare a dividere il numeratore per il denominatore
  3. Restituire il risultato come intero
  4. Gestire FormatException stampando "Invalid format" e restituendo 0
  5. Gestire DivideByZeroException stampando "Cannot divide by zero" e restituendo 0
  6. Gestire qualsiasi altra eccezione con un blocco catch generico che stampa "An error occurred" e restituisce 0

Provalo tu

using System;

public class Program
{
    public static int DivideNumbers(string numeratorStr, string denominatorStr)
    {
        // Scrivi qui il tuo codice
    }
    
    public static void Main(string[] args)
    {
        string numeratorStr = Console.ReadLine();
        string denominatorStr = Console.ReadLine();
        
        int result = DivideNumbers(numeratorStr, denominatorStr);
        Console.WriteLine("Result: " + result);
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C# online