Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Fehlerbehandlung Üben | Zusätzliche Strukturen & Dateiverarbeitung
C# Über die Grundlagen Hinaus
course content

Kursinhalt

C# Über die Grundlagen Hinaus

C# Über die Grundlagen Hinaus

1. Zusätzliche Strukturen & Dateiverarbeitung
2. Strukturen & Enumeratoren
3. Einführung in die Objektorientierte Programmierung (OOP)
4. OOP Essentials
5. OOP-Prinzipien

book
Fehlerbehandlung Üben

Die try-catch-Syntax hat eine zusätzliche Syntax, die es uns ermöglicht, spezifische Fehlertypen abzufangen und sie separat zu behandeln:

cs

index

copy
1234567891011121314151617
try { // 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:

  1. DivideByZeroException: Es gibt eine Division durch Null;
  2. FileNotFoundException: Die Datei, auf die wir zugreifen, existiert nicht;
  3. KeyNotFoundException: Der Schlüssel im Wörterbuch existiert nicht;
  4. 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:

cs

index

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

Hier ist ein Beispiel für die Verwendung eines solchen try-catch-Blocks:

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; } } } }

Nun verwenden Sie diese Konzepte. Füllen Sie die Lücken mit den relevanten Ausnahmetypen im folgenden Code, um die Herausforderung abzuschließen.

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"); } } } }

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

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