Frage von bbatr, 33

C# Visual Studios Exception fangen?

Hallo Leute,

habe in visual studios ein Programm, bei dem ich zwei Zahlen eingeben kann und dann der ggt ermittelt wird. Nun soll es so erweitert werden, dass wenn ich statt Zahlen Wörter oder Sonderzeichen eingebe, die Exception (System.FormatException) gefangen wird und die in der Exception enthaltene Message als Labeltext ausgegeben wird. Leider weiß ich nicht wirklich, was zu tun ist.

das Programm:

namespace WindowsFormsGGT { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        long zahl1 = long.Parse(textBox1.Text);
        long zahl2 = long.Parse(textBox2.Text);

        long ggt = Program.ggT(zahl1, zahl2);
        label1.Text = ggt.ToString();

    }
}
Antwort
von Berny96, 18

Du umschliesst den teil deines Programms welches ein Fehler verursachen kann mit "try" und schließen daran ein "catch" an. Sollte jetzt im try Block etwas schief laufen und die Eingabe nicht in ein long umgewandelt werden kann weil z.B. Buchstaben eingegeben wurden springt das Programm in den catch Block. Hier habe ich einfach mal die Fehlermeldung in einem Dialogbox ausgebenen. Willst du den Fehler einfach ignorieren, lässt du den catch Block frei.

private void button1_Click(object sender, EventArgs e)
{
 try{
long zahl1 = long.Parse(textBox1.Text);
long zahl2 = long.Parse(textBox2.Text);

long ggt = Program.ggT(zahl1, zahl2);
label1.Text = ggt.ToString();
}catch(exception x)
{
MessageBox.Show("Ungültige Eingabe!");
}
}
Kommentar von bbatr ,

Hey, vielen Dank für die Antwort!

das Eingegebene soll im label ausgegeben werden, also keine Fehlermeldung. Muss ich dann statt MessageBox.Show(..) , label.Show(..) schreiben?

Kommentar von regex9 ,

Kommt darauf an. Findest du denn in der Dokumentation für die Label-Klasse eine Methode Show, die du anwenden könntest? ;)

Mein Ratschlag wäre, dass du zuerst einmal die Grundlagen lernst und dir zusätzlich bewusst machst, was du im Code gerade anstellst. Wenn du nicht weißt, was du tust, wirst du nie weit kommen.

PS.: Dem Label weist du den Fehlertext genauso zu, wie du es beim Ergebnistext machen würdest.

Keine passende Antwort gefunden?

Fragen Sie die Community