Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Pratiquer la Gestion des Erreurs | Structures Supplémentaires et Gestion des Fichiers
C# au-delà des Bases
course content

Contenu du cours

C# au-delà des Bases

C# au-delà des Bases

1. Structures Supplémentaires et Gestion des Fichiers
2. Structures et Énumérateurs
3. Introduction à la Programmation Orientée Objet (POO)
4. Essentiels de la POO
5. Principes de la POO

book
Pratiquer la Gestion des Erreurs

La syntaxe try-catch a une syntaxe supplémentaire qui nous permet de capturer des types spécifiques d'erreurs et de les traiter séparément :

cs

index

copy
1234567891011121314151617
try { // code } catch (ExceptionType errorVarName) { // code } catch (ExceptionType errorVarName) { // code } ... finally { // code }

Le type Exception que nous avons utilisé dans le chapitre précédent capture simplement tous les types d'erreurs, cependant, il existe certains sous-types de Exception qui capturent des types d'erreurs plus spécifiques. Voici quelques types d'exceptions courants :

  1. DivideByZeroException : Il y a une division par zéro ;
  2. FileNotFoundException : Le fichier auquel nous accédons n'existe pas ;
  3. KeyNotFoundException : La clé du dictionnaire n'existe pas ;
  4. IndexOutOfRangeException : L'index spécifié d'un tableau ou d'une liste est invalide.

Le terme errorVarName est une variable qui stocke l'objet Exception, et contient des informations comme le message d'erreur qui peut être accédé via errorVarName.Message. Nous pouvons l'omettre dans le cas où nous ne l'utilisons pas :

cs

index

copy
12345678910111213
try { // code } catch (ExceptionType) { // code } ... finally { // code }

Voici un exemple d'utilisation de ce type de bloc try-catch :

cs

index

copy
123456789101112131415161718192021222324252627
using System; class Program { static void Main(string[] args) { int[] myArray = { 0, 2, 4, 6, 8, 10 }; int i = 0; while (true) { try { Console.Write(myArray[i] / i + " "); i++; } catch(DivideByZeroException) { i++; } catch(IndexOutOfRangeException) { break; } } } }

Maintenant, en utilisant ces concepts. Remplissez les blancs avec les types d'exceptions pertinents dans le code suivant pour compléter le défi.

cs

index

copy
1234567891011121314151617181920212223242526272829303132333435
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { int[] numbers = { 1, 2, 5, 7, 9 }; var numberNames = new Dictionary<int, string>(); numberNames.Add(1, "One"); numberNames.Add(2, "Two"); numberNames.Add(5, "Five"); numberNames.Add(9, "Nine"); int i = 0; while (true) { try { int key = numbers[i]; Console.WriteLine($"{key} is {numberNames[key]}"); i++; } catch (___) { break; } catch (___) { numberNames.Add(7, "Seven"); } } } }

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 10
We're sorry to hear that something went wrong. What happened?
some-alt