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 :
index.cs
1234567891011121314151617try { // 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 :
DivideByZeroException
: Il y a une division par zéro ;FileNotFoundException
: Le fichier auquel nous accédons n'existe pas ;KeyNotFoundException
: La clé du dictionnaire n'existe pas ;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 :
index.cs
12345678910111213try { // code } catch (ExceptionType) { // code } ... finally { // code }
Voici un exemple d'utilisation de ce type de bloc try-catch :
index.cs
123456789101112131415161718192021222324252627using 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.
index.cs
1234567891011121314151617181920212223242526272829303132333435using 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"); } } } }
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.04
Pratiquer la Gestion des Erreurs
Glissez pour afficher le menu
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 :
index.cs
1234567891011121314151617try { // 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 :
DivideByZeroException
: Il y a une division par zéro ;FileNotFoundException
: Le fichier auquel nous accédons n'existe pas ;KeyNotFoundException
: La clé du dictionnaire n'existe pas ;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 :
index.cs
12345678910111213try { // code } catch (ExceptionType) { // code } ... finally { // code }
Voici un exemple d'utilisation de ce type de bloc try-catch :
index.cs
123456789101112131415161718192021222324252627using 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.
index.cs
1234567891011121314151617181920212223242526272829303132333435using 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"); } } } }
Merci pour vos commentaires !