Das ist nicht negativ, sondern eine Verbesserung, da man wenn man anderen Menschen etwas lehren möchte, es nicht auf die falsche Weise machen sollte.
Dann macht man es richtig. Das Programm bei jedem klitze-kleinen Fehler zu beenden ist ineffektiv und macht das Programm ziemlich nutzlos.
Das Programm wird nicht beendet. Der aktuelle Sub. Wenn zum Beispiel wie in meinem Fall keine Datei angegeben ist, in die der neue Text gespeichert werden soll, dann speichert er einfach nicht.
Das Programm wird nicht beendet. Der aktuelle Sub. Wenn zum Beispiel wie in meinem Fall keine Datei angegeben ist, in die der neue Text gespeichert werden soll, dann speichert er einfach nicht.
Habe meinen Post korrigiert. Selbst wenn nur die Methode einfach beendet wird, ist es ineffektiv.
Anstatt wenn die Datei nicht angebenen ist, einfach gar nichts zu machen, wäre es intelligenter eine neue Datei zu erstellen mit einem wiedererkennbaren Namen und dort den Text zu speichern.
Oder wie bei deinem Code es am Besten wäre, zu überprüfen ob die Textboxen gefüllt sind und eine Meldung (MessageBox.Show()) auftauchen lassen die sagt, dass dort etwas eingetragen werden MUSS.
Es ist keine Datei angegeben, die gespeichert werden soll. Der Speichervorgang bricht ab, nicht die Ausführung des Programmes.
Dein Code verbesserte Version:
Code:
Private Sub Button2_Click(object sender, EventArgs e) Handles Button2.Click
If TextBox1.Text.Length > 0 And TextBox2.Text.Length < 0 Then
Try
File.WriteAllText(...)
Catch FileNotFoundException
MessageBox.Show("Du musst einen Pfad angeben")
End Try
End If
End Sub
Quote:
Originally Posted by iSam34
Edit :
Da das Programm dafür da ist, irgendeine Datei auszulesen (also nicht nur *.txt), ist das sinnlos.
Dann fragst du vorher ab, falls der Pfad nicht existiert, ob es auf dem Desktop abgelegt werden soll mit Standardname.Standardendung
Private Sub Button2_Click(object sender, EventArgs e) Handles Button2.Click
If TextBox1.Text.Length > 0 And TextBox2.Text.Length < 0 Then
Try
File.WriteAllText(...)
Catch FileNotFoundException
MessageBox.Show("Du musst einen Pfad angeben")
End Try
End If
End Sub
Es ist aber ein Tutorial, mit einem Beispiel. Du hast soeben einen anderen Lösungsweg für dieses Beispiel angegeben. Das ist auch nicht Sinn der Sache. Trotzdem danke für deinen Code.
Es ist aber ein Tutorial, mit einem Beispiel. Du hast soeben einen anderen Lösungsweg für dieses Beispiel angegeben. Das ist auch nicht Sinn der Sache. Trotzdem danke für deinen Code.
Es ist aber ein Tutorial mit einem schlechten Beispiel und schlechte Beispiele sind nunmal wie man es schon liest/hört schlecht.
Wie schon oben erwähnt, sollte man jemanden das Coden nicht mit schlechten Angewohnheiten beibringen.
Man möchte am Ende effektiven, funktionierenden und wenn möglich schnellen Code und keinen Haufen Müll als Endprodukt.
Nur weil Microsoft etwas einbaut, heißt es noch lange nicht, dass man es nutzen sollte.
Ich sehe keinen vernünftigen Grund, ein goto Konstrukt einem simplen try/catch Block vorzuziehen. Du kannst dort sogar effektiv bestimmte Exceptions abfangen und festlegen, wie diese behandelt werden sollen. Für deinen goto Errorhandler müsstest du entweder jedes mal einen neuen Errorhandler definieren oder mit if-Abfragen prüfen, was du meistens nicht kannst.
sag dem TE doch einfach lieber mal einer das dieses konstrukt vb6 ist.
Vb.net ist eine andere technologie somit gibt es dort andere und bessere möglichkeiten