Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Fehlerbehandlung | 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

Sie sind möglicherweise in früheren Kapiteln auf den Begriff Laufzeitfehler gestoßen. Ein Laufzeitfehler ist ein Fehler, der während der Ausführung des Programms auftritt - daher der Name "Laufzeit"-Fehler.

Normalerweise stürzt das Programm ab oder reagiert nicht mehr, wenn ein Laufzeitfehler auftritt.

Der Compiler kann uns helfen, die meisten Fehler in unserem Code zu erkennen, aber Laufzeitfehler sind meist unvorhersehbar und hängen oft von unsicheren Parametern ab.

Zum Beispiel, wenn der Dateipfad, der in StreamReader übergeben wird, ungültig ist oder nicht existiert, wird ein Laufzeitfehler auftreten und das Programm wird abstürzen. Daher setzen wir solchen gefährlichen Code oft in try-catch-Blöcke, um try einen Code auszuführen, und falls er fehlschlägt, catch wir den Fehler und behandeln ihn, anstatt das Programm abstürzen zu lassen.

Folgendes ist die Syntax des try-catch-Blocks:

cs

index

copy
1234567
try { // code to try } catch (Exception errorVar) { // code to handle error }

Hier ist Exception ein Schlüsselwort, das den Datentyp Exception darstellt.

Beispiel:

cs

index

copy
1234567891011121314151617
using System; using System.IO; class Program { static void Main(string[] args) { try { new StreamWriter("C:/a/random/path/that/does/not/exist.txt"); } catch(Exception error) { Console.WriteLine(error.Message); } } }

Im Folgenden sind einige häufige Fälle aufgeführt, in denen ein Laufzeitfehler auftreten kann:

Division durch Null

cs

index

copy
123456789101112131415161718
using System; class Program { static void Main(string[] args) { try { int a = 100; int b = 0; int result = a / b; } catch { Console.WriteLine("ERROR: Division by Zero."); } } }

Ungültiger Index eines Arrays oder einer Liste

cs

index

copy
1234567891011121314151617
using System; class Program { static void Main(string[] args) { try { var exampleArray = new int[10]; Console.WriteLine(exampleArray[20]); } catch { Console.WriteLine("ERROR: The array index is out of bounds."); } } }

Schlüssel nicht gefunden (für Dictionaries):

cs

index

copy
123456789101112131415161718192021
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { try { Dictionary<string, string> myDict = new Dictionary<string, string> { { "key1", "value1" } }; Console.WriteLine(myDict["key2"]); } catch { Console.WriteLine("Error: Key not found"); } } }

Der "finally"-Block

Es gibt auch einen optionalen Codeblock namens finally, der nach dem catch-Block ausgeführt wird:

cs

index

copy
12345678910111213141516171819202122232425
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { try { Dictionary<string, string> myDict = new Dictionary<string, string> { { "key1", "value1" } }; Console.WriteLine(myDict["key2"]); } catch { Console.WriteLine("Error: Key not found"); } finally { Console.WriteLine("This line will show after the error"); } } }

1. Was wird die Ausgabe des folgenden Programms sein?

2. Was ist der Zweck des finally-Blocks in C#?

3. Welche der folgenden Aussagen trifft auf den try-catch-Block in C# zu?

Was wird die Ausgabe des folgenden Programms sein?

Was wird die Ausgabe des folgenden Programms sein?

Wählen Sie die richtige Antwort aus

Was ist der Zweck des `finally`-Blocks in C#?

Was ist der Zweck des finally-Blocks in C#?

Wählen Sie die richtige Antwort aus

Welche der folgenden Aussagen trifft auf den `try-catch`-Block in C# zu?

Welche der folgenden Aussagen trifft auf den try-catch-Block in C# zu?

Wählen Sie einige richtige Antworten aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

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