C# – Konsoleneingabe mit Ausnahmebehandlung

Dieses Tutorial ist Teil einer dreitiligen Artikelserie zur Konsoleneingabe in C#:

  1. C# – Konsoleneingabe lesen
  2. C# – Konsoleneingabe validieren
  3. C# – Konsoleneingabe mit Ausnahmebehandlung

Im dritten Teil zum Thema Konsoleneingabe in C# wenden wir uns der Ausnahmebehandlung zu. Ebenso wie im Blogbeitrag „Konsoleneingabe validieren“, soll auch in diesem Beispiel eine vom Nutzer eingegebene Zahl mit 10 multipliziert werden. Während im vorherigen Beispiel eine (fehlerhafte) Nutzereingabe mittels int.TryParse() validiert wurde, greifen wir hier auf eine Ausnahmebehandlung, d.h. einen trycatch-Block zurück.

Ausgangspunkt für dieses Beispiel ist folgender Code:

Console.WriteLine("Gib eine Zahl ein: ");
var input = Console.ReadLine();

Console.WriteLine(int.Parse(input) * 10);

Sofern die Konvertierung von string zu int mithilfe von int.Parse() funktioniert, wird der Code fehlerfrei ausgeführt werden.

Anders sieht es aus, wenn beispielsweise keine Zahl, sondern ein Buchstaben eingegeben wird. Mit einer Ausnahmebehandlung kann dem begegnet werden:

Console.WriteLine("Gib eine Zahl ein: ");
var input = Console.ReadLine();

try
{
    Console.WriteLine(int.Parse(input) * 10);
}
catch(FormatException ex)
{
    Console.WriteLine(ex);
}

Sollte jetzt eine fehlerhafte Eingabe erfolgen, erscheint eine Fehlermeldung:

System.FormatException: Input string was not in a correct format.