Entwickler-Ecke
WinForms - Programm stoppen nach Ausnahme
Muetze187 - Do 16.09.10 08:34
Titel: Programm stoppen nach Ausnahme
Hallo mal wieder :)
Ich habe einen Taschenrechner erstellt und mit einer Ausnahme versehen, die Konvertierungsfehler abfängt.
Mein Problem hierbei ist, dass das Programm weiterrechnet wenn der Anwender auf Berechnen klickt.
Dies soll aber unterbunden werden. Ist es irgendwie möglich, dass das Programm sich neu startet oder so was ähnliches? Also
dass das Programm die Werte einfach "vergisst"?
Hier mal der Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace Taschenrechner { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private Single Ausnahme(TextBox wert2) { float wert1 = 0; try { wert1 = Convert.ToSingle(wert2.Text); } catch (FormatException) { MessageBox.Show("Es ist ein Konvertierungsfehler aufgetreten!\n\n Fehler: " + wert2.Text, "FEHLER!"); wert2.Select(); } return wert1;
} private void buttonBeenden_Click(object sender, EventArgs e) { Close(); }
private void buttonBerechnen_Click(object sender, EventArgs e) { float zahl1, zahl2, ergebnis = 0; bool divDurchNull = false; zahl1 = Ausnahme(textBoxZahl1); zahl2 = Ausnahme(textBoxZahl2); if (radioButtonAddition.Checked == true) ergebnis = zahl1 + zahl2; if (radioButtonSubtraktion.Checked == true) ergebnis = zahl1 - zahl2; if (radioButtonMultiplikation.Checked == true) ergebnis = zahl1 * zahl2; if (radioButtonDivision.Checked == true) { if (zahl2 == 0) divDurchNull = true; else ergebnis = zahl1 / zahl2; } if (divDurchNull == true) labelAnzeige.Text = "Nicht definiert!"; else labelAnzeige.Text = Convert.ToString(ergebnis); } } } |
Danke im Voraus!
mfg
bakachan - Do 16.09.10 08:43
Du könntest die Exception an einer Stelle abfangen wo du die Berrechnung abbrechen kannst.
Aber prinzipiell brauchst du für sowas keine Exception.
Beispiel:
C#-Quelltext
1: 2: 3:
| int result; if(!int.TryParse(textBox1.Text, out result)) MessageBox.Show("Fehler"); |
Muetze187 - Do 16.09.10 09:06
Danke für die Antwort.
Ich muss ne Exception machen an der Stelle. Ist vom "Lehrer" vorgegeben. :)
Er meinte als Tipp, ich könnte in der Methode für die Überprüfung eine eigene Ausnhame auslösen und sie in der Methode mit den Berechnungen auswerten.
Die Frage ist nur wie?! Außerdem sollte ich das Gaze mit try...catch machen, da dies gerade das Thema ist :)
mfg
bakachan - Do 16.09.10 09:15
Muetze187 hat folgendes geschrieben : |
| Er meinte als Tipp, ich könnte in der Methode für die Überprüfung eine eigene Ausnhame auslösen und sie in der Methode mit den Berechnungen auswerten. |
bakachan hat folgendes geschrieben : |
| Du könntest die Exception an einer Stelle abfangen wo du die Berrechnung abbrechen kannst. |
Somit haben wir dir beide den gleichen Hinweis gegeben.
Und deine Frage "wie" hast du dir schon selbst beantwortet -> Try Catch
Die entsprechende Stelle wurde ja auch schon genannt.
Alles andere wäre direkt di Lösung zu verraten und das ist glaube ich nicht der Sinn deines "Unterrichts".
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!