Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
12 Windows Presentation Foundation
13 Windows Store-Apps für Windows 8
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
C Inhalt der Buch-DVD
D Der Autor
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Einstieg in Visual Basic 2012 von Thomas Theis
Ideal für Programmiereinsteiger geeignet
Buch: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Rheinwerk Computing
579 S., 3., aktualisierte und erweiterte Auflage 2013, brosch., mit DVD
24,90 Euro, ISBN 978-3-8362-1959-4
Pfeil 3 Fehlerbehandlung
Pfeil 3.1 Fehlerarten
Pfeil 3.2 Syntaxfehler und IntelliSense
Pfeil 3.3 Laufzeitfehler und Exception Handling
Pfeil 3.3.1 Programm mit Laufzeitfehlern
Pfeil 3.3.2 Einfaches Exception Handling
Pfeil 3.3.3 Erweitertes Exception Handling
Pfeil 3.4 Logische Fehler und Debugging
Pfeil 3.4.1 Einzelschrittverfahren
Pfeil 3.4.2 Haltepunkte
Pfeil 3.4.3 Überwachungsfenster

Rheinwerk Computing - Zum Seitenanfang

3.3 Laufzeitfehler und Exception HandlingZur nächsten Überschrift

Das Exception Handling dient zum Abfangen von Laufzeitfehlern und zum Behandeln von Ausnahmen. Diese treten auf, wenn das Programm versucht, eine unzulässige Operation durchzuführen, beispielsweise eine Division durch Null oder das Öffnen einer nicht vorhandenen Datei.

Es ist natürlich besser, Laufzeitfehler von Anfang an zu unterbinden. Dies ist allerdings unmöglich, da es Vorgänge gibt, auf die Sie als Programm-Entwickler keinen Einfluss haben, etwa die fehlerhafte Eingabe eines Benutzers oder ein beim Druckvorgang ausgeschalteter Drucker.


Rheinwerk Computing - Zum Seitenanfang

3.3.1 Programm mit LaufzeitfehlernZur nächsten ÜberschriftZur vorigen Überschrift

Im nachfolgenden Beispiel im Projekt Laufzeitfehler werden verschiedene Arten von Exceptions hervorgerufen und mit dem Exception Handling von Visual Basic behandelt.

Der Benutzer soll zwei Zahlen eingeben. Nach Betätigung des Buttons Rechnen wird die erste Zahl durch die zweite geteilt und das Ergebnis der Division in einem Label ausgegeben.

Public Class Form1
Private Sub cmdRechnen_Click(...) Handles ...
Dim x, y, z As Integer
x = txtEingabe1.Text
y = txtEingabe2.Text
z = x / y
lblAusgabe.Text = z
End Sub
End Class

Listing 3.1 Projekt »Laufzeitfehler«

Gibt der Benutzer die Zahlen 12 und 3 ein, erscheint als Ergebnis erwartungsgemäß die Zahl 4, siehe Abbildung 3.2.

Abbildung

Abbildung 3.2 Eingabe korrekter Zahlen

Wenn er dagegen die Zahlen 12 und 0 eingibt, dann tritt eine unbehandelte Ausnahme des Typs OverFlowException auf. In Abbildung 3.3 ist der Fehler zu sehen, in der der Fehler auftritt.

Abbildung

Abbildung 3.3 OverFlowException in der markierten Zeile

Die Division einer Zahl durch 0 ergibt unendlich. Dieser Wert liegt außerhalb des Zahlenbereichs des Datentyps Integer, daher wurde der Zahlenbereich überschritten (Overflow).

Gibt der Benutzer eine der beiden Zahlen gar nicht ein, so tritt eine unbehandelte Ausnahme des Typs InvalidCastException auf. In Abbildung 3.4 ist wiederum der Fehler zu sehen, in der der Fehler auftritt.

Abbildung

Abbildung 3.4 InvalidCastException in der markierten Zeile

Die leere Zeichenkette im Eingabefeld konnte nicht in eine Zahl vom Typ Integer umgewandelt werden.

Nach der Anzeige einer unbehandelten Ausnahme muss das Programm mithilfe des Menüpunkts DebuggenDebugging beenden beendet werden, bevor es erneut gestartet werden kann.


Rheinwerk Computing - Zum Seitenanfang

3.3.2 Einfaches Exception HandlingZur nächsten ÜberschriftZur vorigen Überschrift

Es folgt im Projekt ExceptionHandling eine verbesserte Version des Projekts Laufzeitfehler.

Public Class Form1
Private Sub cmdRechnen_Click(...) Handles ...
Dim x, y, z As Integer
Try
x = txtEingabe1.Text
y = txtEingabe2.Text
z = x / y
lblAusgabe.Text = z
Catch ex As Exception
lblAusgabe.Text = "Fehler: " & ex.Message
End Try
End Sub
End Class

Listing 3.2 Projekt »ExceptionHandling«

Zur Erläuterung:

  • Das Schlüsselwort Try leitet das Exception Handling ein. Ab diesem Punkt versucht das Programm, einen Anweisungsblock auszuführen.
  • Tritt während der nachfolgenden Anweisungen eine Exception auf, so wird sie mithilfe von Catch abgefangen: Das Programm wechselt sofort bei Auftreten der Exception in einen Catch-Block und führt die dort angegebenen Anweisungen aus.
  • Im Catch-Block steht ein Objekt der Klasse Exception zur Verfügung, hier ist dies ex. Dieses Objekt beinhaltet weitere Informationen zu dem Fehler, unter anderem die Fehlermeldung in der Eigenschaft Message. Diese Fehlermeldung wird im vorliegenden Fall ausgegeben.

Falls der Benutzer die Zahlen 12 und 3 eingibt, erscheint nach wie vor die Zahl 4. Im Try-Block ist keine Exception aufgetreten. Bei Eingabe der Zahlen 12 und 0 erscheint eine Fehlermeldung im Label, siehe Abbildung 3.5.

Abbildung

Abbildung 3.5 Überlauf abgefangen

Gibt der Benutzer eine der beiden Zahlen gar nicht ein, so erscheint die andere Fehlermeldung im Label, siehe Abbildung 3.6.

Abbildung

Abbildung 3.6 Umwandlungsfehler abgefangen

Anders als in der ersten Version kann das Programm trotz der Fehlermeldungen weiterlaufen.


Rheinwerk Computing - Zum Seitenanfang

3.3.3 Erweitertes Exception HandlingZur vorigen Überschrift

Die Klasse Exception ist die Basis mehrerer Exception-Klassen. Dies bedeutet, dass ein Fehler wesentlich spezifischer abgefangen und behandelt werden kann. Eine weitere Verbesserung des Programms folgt im Projekt ExceptionHandlingErweitert:

Public Class Form1
Private Sub cmdRechnen_Click(...) Handles ...
Dim x, y, z As Integer
Try
x = txtEingabe1.Text
y = txtEingabe2.Text
z = x / y
lblAusgabe.Text = z
Catch ex As InvalidCastException
lblAusgabe.Text =
"Fehler: Konvertierung"
Catch ex As OverflowException
lblAusgabe.Text =
"Fehler: Überlauf"
Catch ex As Exception
lblAusgabe.Text =
"Fehler: allgem. Exception"
End Try
End Sub
End Class

Listing 3.3 Projekt »ExceptionHandlingErweitert«

Zur Erläuterung:

  • Es gibt nunmehr drei Catch-Blöcke, die in der Lage sind, drei verschiedene Fehler durch unterschiedliche Anweisungen zu behandeln.
  • Im ersten Catch-Block wird der Konvertierungsfehler mit Unterstützung eines Objekts der Klasse InvalidCastException abgefangen.
  • Im zweiten Catch-Block wird der Überlauf-Fehler mit Unterstützung eines Objekts der Klasse OverFlowException abgefangen.
  • Im dritten Catch-Block werden alle nicht spezifisch abgefangenen Fehler mit Unterstützung eines Objekts der allgemeinen Klasse Exception behandelt.

Die Reihenfolge der Catch-Blöcke ist wichtig, da die Blöcke bei Auftreten eines Fehlers der Reihe nach durchlaufen werden. Der erste zutreffende Catch-Block wird genutzt. Hätten Sie also den dritten Block mit der allgemeinen Klasse Exception nach vorne gesetzt, so wäre in jedem Fehlerfall die Meldung Fehler: allgemeine Exception erschienen.

Die Entwicklerunterstützung IntelliSense bemerkt und markiert eine falsche Reihenfolge der Catch-Blöcke aber bereits zur Entwicklungszeit und ermöglicht so die rechtzeitige Korrektur.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern