Fehlerbehandlung Üben
Die try-catch
-Syntax hat eine zusätzliche Syntax, die es uns ermöglicht, spezifische Fehlertypen abzufangen und sie separat zu behandeln:
index.cs
1234567891011121314151617try { // code } catch (ExceptionType errorVarName) { // code } catch (ExceptionType errorVarName) { // code } ... finally { // code }
Der Typ Exception
, den wir im vorherigen Kapitel verwendet haben, fängt einfach alle Arten von Fehlern ab. Es gibt jedoch einige Untertypen von Exception
, die spezifischere Arten von Fehlern abfangen. Im Folgenden sind einige häufige Ausnahmearten aufgeführt:
DivideByZeroException
: Es gibt eine Division durch Null;FileNotFoundException
: Die Datei, auf die wir zugreifen, existiert nicht;KeyNotFoundException
: Der Schlüssel im Wörterbuch existiert nicht;IndexOutOfRangeException
: Der angegebene Index eines Arrays oder einer Liste ist ungültig.
Der Begriff errorVarName
ist eine Variable, die das Exception-Objekt speichert und Informationen wie die Fehlermeldung enthält, die über errorVarName.Message
abgerufen werden können. Wir können das weglassen, falls wir es nicht verwenden:
index.cs
12345678910111213try { // code } catch (ExceptionType) { // code } ... finally { // code }
Hier ist ein Beispiel für die Verwendung eines solchen try-catch-Blocks:
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; } } } }
Nun verwenden Sie diese Konzepte. Füllen Sie die Lücken mit den relevanten Ausnahmetypen im folgenden Code, um die Herausforderung abzuschließen.
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"); } } } }
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 2.04
Fehlerbehandlung Üben
Swipe um das Menü anzuzeigen
Die try-catch
-Syntax hat eine zusätzliche Syntax, die es uns ermöglicht, spezifische Fehlertypen abzufangen und sie separat zu behandeln:
index.cs
1234567891011121314151617try { // code } catch (ExceptionType errorVarName) { // code } catch (ExceptionType errorVarName) { // code } ... finally { // code }
Der Typ Exception
, den wir im vorherigen Kapitel verwendet haben, fängt einfach alle Arten von Fehlern ab. Es gibt jedoch einige Untertypen von Exception
, die spezifischere Arten von Fehlern abfangen. Im Folgenden sind einige häufige Ausnahmearten aufgeführt:
DivideByZeroException
: Es gibt eine Division durch Null;FileNotFoundException
: Die Datei, auf die wir zugreifen, existiert nicht;KeyNotFoundException
: Der Schlüssel im Wörterbuch existiert nicht;IndexOutOfRangeException
: Der angegebene Index eines Arrays oder einer Liste ist ungültig.
Der Begriff errorVarName
ist eine Variable, die das Exception-Objekt speichert und Informationen wie die Fehlermeldung enthält, die über errorVarName.Message
abgerufen werden können. Wir können das weglassen, falls wir es nicht verwenden:
index.cs
12345678910111213try { // code } catch (ExceptionType) { // code } ... finally { // code }
Hier ist ein Beispiel für die Verwendung eines solchen try-catch-Blocks:
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; } } } }
Nun verwenden Sie diese Konzepte. Füllen Sie die Lücken mit den relevanten Ausnahmetypen im folgenden Code, um die Herausforderung abzuschließen.
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"); } } } }
Danke für Ihr Feedback!