Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 06:05

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



vb.net simple ErrorHandler

Discussion on vb.net simple ErrorHandler within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
iSam34's Avatar
 
elite*gold: 0
Join Date: Nov 2013
Posts: 42
Received Thanks: 15
VB6 simple ErrorHandler

An Stellen, wo ein Fehler auftreten könnte, kann man Folgendes einsetzen :

Code:
On Error GoTo ErrHandler
Dazu muss vor
Code:
End Sub
ein
Code:
ErrHandler:
        Exit Sub
eingesetzt werden.

In meinem Fall (Code ersetzt den Text in einer Datei) :



Erklärung.
On Error GoTo ErrHandler =
Wenn ein Fehler auftritt, wird der Code an der Stelle ErrHandler: fortgeführt.

Exit Sub =



-Dat Random Guy Making ****** Turorials Because He Is Bored
iSam34 is offline  
Thanks
1 User
Old 04/27/2014, 07:40   #2


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Nein.

Code:
Try
[...]
Catch ex As Exception
MessageBox.Show(ex.ToString())
//oder
Console.WriteLine(ex.ToString())
End Try
Fehler analysieren, wenn nötig Google nutzen und Fehler beheben.

Wer auch immer dieses GoTo nutzt gehört an die Wand geschlagen.
Requi is offline  
Thanks
2 Users
Old 04/27/2014, 07:43   #3
 
iSam34's Avatar
 
elite*gold: 0
Join Date: Nov 2013
Posts: 42
Received Thanks: 15
Quote:
Originally Posted by Requi View Post
Nein.

Code:
Try
[...]
Catch ex As Exception
MessageBox.Show(ex.ToString())
//oder
Console.WriteLine(ex.ToString())
End Try
Fehler analysieren, wenn nötig Google nutzen und Fehler beheben.

Wer auch immer diese ":" Labels nutzt gehört an die Wand geschlagen.
Wieso wusste ich das die erste Antwort wieder etwas negatives ist... Ich meine wenn man nen ErrorHandler braucht...

btw: Hast mich auf ne Idee gebracht, danke
iSam34 is offline  
Old 04/27/2014, 07:47   #4


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Quote:
Originally Posted by iSam34 View Post
Wieso wusste ich das die erste Antwort wieder etwas negatives ist...
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.
Quote:
Originally Posted by iSam34 View Post
Ich meine wenn man nen ErrorHandler braucht...
Dann macht man es richtig. Die Methode bei jedem klitze-kleinen Fehler zu beenden ist ineffektiv und macht das Programm ziemlich nutzlos.
Requi is offline  
Old 04/27/2014, 07:49   #5
 
iSam34's Avatar
 
elite*gold: 0
Join Date: Nov 2013
Posts: 42
Received Thanks: 15
Quote:
Originally Posted by Requi View Post
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.
iSam34 is offline  
Old 04/27/2014, 07:52   #6


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Quote:
Originally Posted by iSam34 View Post
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.
Requi is offline  
Old 04/27/2014, 07:52   #7
 
iSam34's Avatar
 
elite*gold: 0
Join Date: Nov 2013
Posts: 42
Received Thanks: 15
Zur Veranschaulichung :



Es ist keine Datei angegeben, die gespeichert werden soll. Der Speichervorgang bricht ab, nicht die Ausführung des Programmes.

Edit :

Da das Programm dafür da ist, irgendeine Datei auszulesen (also nicht nur *.txt), ist das sinnlos.
iSam34 is offline  
Old 04/27/2014, 07:57   #8


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Quote:
Originally Posted by iSam34 View Post
Zur Veranschaulichung :



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 View Post
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
Requi is offline  
Thanks
1 User
Old 04/27/2014, 07:59   #9
 
iSam34's Avatar
 
elite*gold: 0
Join Date: Nov 2013
Posts: 42
Received Thanks: 15
Quote:
Originally Posted by Requi View Post
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
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.
iSam34 is offline  
Old 04/27/2014, 08:04   #10


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Quote:
Originally Posted by iSam34 View Post
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.
Requi is offline  
Thanks
1 User
Old 04/27/2014, 11:18   #11
 
'Heaven.'s Avatar
 
elite*gold: 1
The Black Market: 331/0/0
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
Cool, wusste ich noch gar nicht. Du solltest aber den Titel zu VB6 ändern, sonst denkt man noch etwas falsches hier
'Heaven. is offline  
Thanks
3 Users
Old 04/27/2014, 17:55   #12


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
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.
Mostey is offline  
Old 04/27/2014, 18:20   #13
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
pffff diese aufregung hier...

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
tolio is offline  
Reply




All times are GMT +1. The time now is 06:06.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.