Complete these tasks to reinforce what you learned in this module.
Diese Methode verschluckt alles und liefert im Zweifel 0:
``csharp
static int LiesZahl(string eingabe)
{
try { return int.Parse(eingabe); }
catch (Exception) { return 0; }
}
Schreibe sie so, dass kein Fehler mehr verschwindet:
- null als Eingabe wirft eine ArgumentNullException.
- Eine nicht-numerische Eingabe wirft eine FormatException mit der Meldung Keine Zahl: {eingabe}.
- Sonst kommt die Zahl zurück.
Main ruft die Methode für "42", "abc" und null auf und gibt für jeden Fall eine Zeile aus: die Zahl, die Meldung der FormatException oder — bei der ArgumentNullException — den Text Kein Wert übergeben`.
catch (FormatException ex) gibt ex.Message aus, catch (ArgumentNullException) gibt den festen Text aus. Die Prüfung auf null gehört an den Anfang der Methode, vor den Parse-Versuch — sonst wirft int.Parse selbst und du bekommst den falschen Ausnahmetyp.using System;
public static class Eingabe
{
public static int LiesZahl(string eingabe)
{
// TODO: null -> ArgumentNullException
// TODO: nicht numerisch -> FormatException("Keine Zahl: " + eingabe)
// TODO: sonst die Zahl
return 0;
}
}
class Program
{
static void Main()
{
string[] eingaben = { "42", "abc", null };
foreach (var eingabe in eingaben)
{
// TODO: LiesZahl aufrufen und je nach Ausgang eine Zeile ausgeben:
// Erfolg -> die Zahl
// FormatException -> ex.Message
// ArgumentNullException -> "Kein Wert übergeben"
}
}
}