DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Andreas Rauch Artikel Drucken
        
Ausnahmenzustand - Fehlerhandlung in VB.NET

Ein guter VBler gibt nicht auf. Ein guter VBler baut in seinen Code auch eine Fehlerbanhdlung ein. Ein guter VBler gibt auch schnell die Vorzüge einer strukturierten Fehlerbehandlung wie in  VB.NET zu.  Wie die Fehlerbahndlung aussah lag mehr oder weniger am Entwicklerlag.

In Vb sah sie ungefähr immer so aus.

On error goto Sprungstelle
Code
Exit ...
sprungstelle:
Fehlerbehandlung 

Jetzt nehmen wir mal den Fall an, dass eine Connection zu DB aufgemacht wird, die nach Beendigung der Prozedur auch wieder geschlosssen werden soll.Tritt allerdings ein Fehler auf wurde die Verbindung nicht geschlossen. Also auch in die Fehlerbehandlung das Schliessen der Verbindung einbauen.

Mit einem Wort umständlich. Was, wenn es einfacher auch geht? Das ist genau der Punkt, wo VB.NET mit einer strukturierten Fehlerbehandlung einem viel Arbeit abnehmen kann.

Die Struktur der Fehlerbehandlung sieht folgendermassen aus:
try
' Codeblock, der nach Fehlern überwacht werden soll
Catch
End try 

Beispiel:
Dim i as integer
i=5
Try
i = i/3
Catch e As Exception
messagebox.show(e.Message)
End Try 

Falls das Ergebnis (was es hier auch nicht macht) nicht einem integer entpricht, wird der Fehler von der Catch Anweisung verarbeitet.

Sofern der Fehler nicht durch das catch abgefangen wird, sürzt unser Programm ab.

Übrigens, eines mal nebenbei, Fehler heissen jetzt wie sie sehen Ausnahmen ;-).

Mit der Exception Variablen erhalten wir noch ein paar zusätzliche Informationen.
Wo der Fehler auftrat (Source) oder die Angabe (Link) zu einer Help Datei.

Exceptions

Die Mutter aller Ausnahmen ist die Exception selber, d.h mit deren Kindern kann man eine recht umfangreiche Sammlung von Ausnahmen anlegen wie ArithmaticException oder OverflowException.

Auf eines sollte man allerdings aufpassen. Die Anweisung as Exception muss logischerweise am Schluss des Catch stehen, da Sie jegliche Fehlerbehandlung sonst abfängt, bevor z.b ArithmaticException prüft.

When
Die Catch Anweisung kann nun noch mit when erweitert werden.

Sub main()
Catch e as exception when e.TargetSite.Name = "test"
End sub

Sub test()
...
end Sub

Dies Anweisung fängt der Catch Block nur die Fehler ab, die aus der Prozedur "test" stammen.


So.., und nun noch der ultimative Vorteil der strukturierten Fehlerbehandlung.

Der Finally Block

Dort können nun all die Dinge erledigt werden, die auf jeden Fall - bei Fehler oder auch ohne Fehler- geschehen sollen, wie z.b. das Schliessen einer Connection. Der Finally Block wir auf jeden Fall abgearbeitet.

try
fehler()
catch e as exception
messagebox.show ("Fehler!")
Finally
'Schliessen der Connection, etc
End try

Also auf gehts!

 



 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 08.04.2003
  Gültig bis: 08.05.2003
4 Ratings
Bewertung: 100,0%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG