Partager via


Comment : gérer une exception à l'aide de try/catch (Guide de programmation C#)

Le but d'un bloc try-catch est d'intercepter et de gérer une exception générée par un code actif. Certaines exceptions peuvent être gérées dans un bloc catch et le problème résolu sans que l'exception soit levée à nouveau. Toutefois, le plus souvent, la seule chose que vous pouvez faire est de veiller à ce que l'exception appropriée soit levée.

Exemple

Dans cet exemple, IndexOutOfRangeException n'est pas l'exception la plus appropriée : ArgumentOutOfRangeException a de plus de sens pour la méthode parce que l'erreur est provoquée par l'argument index passé par l'appelant.

class TestTryCatch
{
    static int GetInt(int[] array, int index)
    {
        try
        {
            return array[index];
        }
        catch (System.IndexOutOfRangeException e)  // CS0168
        {
            System.Console.WriteLine(e.Message);
            // Set IndexOutOfRangeException to the new exception's InnerException.
            throw new System.ArgumentOutOfRangeException("index parameter is out of range.", e);
        }
    }
}

Commentaires

Le code qui provoque une exception est joint dans le bloc try. Une instruction catch est ajoutée immédiatement après pour gérer IndexOutOfRangeException, si elle se produit. Le bloc catch gère l'IndexOutOfRangeException et lève à la place l'exception plus appropriée ArgumentOutOfRangeException. Pour fournir à l'appelant autant d'informations que possible, pensez à spécifier l'exception d'origine comme InnerException de la nouvelle exception. Comme la propriété InnerException a pour valeur readonly, vous devez l'assigner dans le constructeur de la nouvelle exception.

Voir aussi

Référence

Exceptions et gestion des exceptions (Guide de programmation C#)

Gestion des exceptions (Guide de programmation C#)

Concepts

Guide de programmation C#