Eigene fachliche Ausnahmen definieren in C#
In dieser Lektion erstellst du einen eigenen Ausnahmetyp für einen fachlichen Fehler und fängst genau diese Fehlerart ab.
Einführung
Statt einer allgemeinen Exception kannst du eine eigene Ausnahme definieren, deren Name den fachlichen Fehler klar beschreibt, etwa zu wenig Ware im Lager. So wird der Code lesbarer, und die Fehlerbehandlung kann genau die Fehlerart abfangen, die sie behandeln muss.
Die Klasse InsufficientStockException erbt von Exception und hat damit das ganze Verhalten einer normalen Ausnahme. Die Methode Reserve löst diese Ausnahme aus, wenn die angeforderte Menge den verfügbaren Bestand übersteigt. Der catch-Block fängt nur InsufficientStockException ab und gibt die Meldung Not enough stock aus.
Ausführbares C#-Beispiel
using System;
class InsufficientStockException(string message) : Exception(message) { }
class Program
{
static void Reserve(int available, int requested)
{
if (requested > available) throw new InsufficientStockException("Not enough stock");
}
static void Main()
{
try { Reserve(2, 3); }
catch (InsufficientStockException error) { Console.WriteLine(error.Message); }
}
}
Not enough stockMit dem Debugger üben
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
- Erstes ungültiges Alter Validiere eingegebene Altersangaben und melde, wo der erste fehlerhafte Eintrag steht, statt das Programm abstürzen zu lassen. Einfach
- Gültige Zahlen summieren Addiere die Einträge, die ganze Zahlen sind, und überspringe alles andere, so wie try/except mit ungültiger Eingabe umgeht. Einfach