Menu
Coddy logo textTech

Types d'exceptions

Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 24 sur 66.

En C#, les exceptions sont classées en différents types en fonction de l'erreur qu'elles représentent. Comprendre ces types vous aide à gérer les erreurs plus efficacement.

Voyons les types d'exceptions courants :

La classe de base pour toutes les exceptions est System.Exception.

try
{
    // Code qui pourrait lever une exception
}
catch (Exception ex)
{
    // Gérer n'importe quelle exception
    Console.WriteLine(ex.Message);
}

Quelques types d'exceptions courants :

ArgumentException : Levée lorsqu'une méthode est appelée avec un argument non valide.

string name = null;
if (name == null)
{
    throw new ArgumentException("Name cannot be null");
}

NullReferenceException : Levée lorsque vous tentez d'accéder à un membre sur une référence nulle.

string text = null;
// Cela lèvera une NullReferenceException
int length = text.Length;

IndexOutOfRangeException : Lancée lorsqu'un index de tableau est en dehors des limites du tableau.

int[] numbers = { 1, 2, 3 };
// Cela lancera une IndexOutOfRangeException
int value = numbers[5];

DivideByZeroException : levée lors de la division d'un entier par zéro.

int result = 10 / 0; // Cela lèvera une DivideByZeroException

Vous pouvez intercepter des exceptions spécifiques :

try
{
    int[] numbers = { 1, 2, 3 };
    int value = numbers[5];
}
catch (IndexOutOfRangeException ex)
{
    Console.WriteLine("Array index error: " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("General error: " + ex.Message);
}
challenge icon

Défi

Facile

Créez une méthode nommée ProcessArray qui :

  1. Prend un tableau d'entiers et un index en paramètres
  2. Tente d'accéder à l'élément à l'index spécifié
  3. Retourne la valeur de l'élément en cas de succès
  4. Si une IndexOutOfRangeException se produit, capturez-la et retournez -1

Votre méthode doit avoir cette signature :

public static int ProcessArray(int[] array, int index)

Aide-mémoire

La classe de base pour toutes les exceptions est System.Exception :

try
{
    // Code qui pourrait lever une exception
}
catch (Exception ex)
{
    // Gérer n'importe quelle exception
    Console.WriteLine(ex.Message);
}

Types d'exceptions courants :

ArgumentException : Levée lorsqu'une méthode est appelée avec un argument non valide :

string name = null;
if (name == null)
{
    throw new ArgumentException("Name cannot be null");
}

NullReferenceException : Levée lors de l'accès à un membre sur une référence nulle :

string text = null;
int length = text.Length; // Lève NullReferenceException

IndexOutOfRangeException : Levée lorsque l'index d'un tableau est hors limites :

int[] numbers = { 1, 2, 3 };
int value = numbers[5]; // Lève IndexOutOfRangeException

DivideByZeroException : Levée lors de la division d'un entier par zéro :

int result = 10 / 0; // Lève DivideByZeroException

Intercepter des exceptions spécifiques :

try
{
    int[] numbers = { 1, 2, 3 };
    int value = numbers[5];
}
catch (IndexOutOfRangeException ex)
{
    Console.WriteLine("Array index error: " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("General error: " + ex.Message);
}

Essayez vous-même

using System;

class Program
{
    public static int ProcessArray(int[] array, int index)
    {
        // Écrivez votre code ici
        return 0;
    }

    static void Main(string[] args)
    {
        // Lire l'entrée du tableau
        string input = Console.ReadLine();
        
        // Supprimer les crochets s'ils sont présents
        if (input.StartsWith("[") && input.EndsWith("]"))
        {
            input = input.Substring(1, input.Length - 2);
        }
        
        string[] parts = input.Split(',');
        
        int[] array = new int[parts.Length];
        for (int i = 0; i < parts.Length; i++)
        {
            array[i] = int.Parse(parts[i].Trim());
        }
        
        // Lire l'entrée de l'index
        int index = int.Parse(Console.ReadLine());
        
        int result = ProcessArray(array, index);
        Console.WriteLine(result);
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux