Galileo Computing < openbook > Galileo 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
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 7,8 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in Visual Basic 2010 von Thomas Theis
Inkl. Visual Studio Express Editions
Buch: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
2., akt. und erw. Aufl., Klappbroschur, mit DVD
467 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1541-1
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


Galileo Computing - Zum Seitenanfang

3.3 Laufzeitfehler und Exception Handling Zur nächsten ÜberschriftZur vorigen Überschrift

Ausnahmen

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.


Galileo Computing - Zum Seitenanfang

3.3.1 Programm mit Laufzeitfehlern Zur 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«

OverFlowException

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

Abbildung 3.2 Eingabe korrekter Zahlen

Wenn er dagegen die Zahlen 12 und 0 eingibt, dann tritt eine unbehandelte Ausnahme des Typs OverFlowException auf, siehe Abbildung 3.3.

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).

InvalidCastException

Gibt der Benutzer eine der beiden Zahlen gar nicht ein, so tritt eine unbehandelte Ausnahme des Typs InvalidCastException auf, siehe Abbildung 3.4.

Abbildung 3.4 InvalidCastException in der markierten Zeile

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

Debuggen beenden

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


Galileo Computing - Zum Seitenanfang

3.3.2 Einfaches Exception Handling Zur 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:

Try

  • Das Schlüsselwort Try leitet das Exception Handling ein. Ab diesem Punkt versucht das Programm, einen Anweisungsblock auszuführen.

Catch

  • 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 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 3.6 Umwandlungsfehler abgefangen

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


Galileo Computing - Zum Seitenanfang

3.3.3 Erweitertes Exception Handling topZur vorigen Überschrift

Exception-Klassen

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.

Klasse Exception

  • 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.

IntelliSense

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.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Visual Basic 2010






 Visual Basic 2010


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Silverlight 4






 Silverlight 4


Zum Katalog: Einstieg in Visual C# 2010






 Einstieg in
 Visual C# 2010


Zum Katalog: Visual C# 2010






 Visual C# 2010


Zum Katalog: Einstieg in PHP 5.3 und MySQL 5.4






 Einstieg in PHP 5.3
 und MySQL 5.4


Zum Katalog: PHP 5.3 und MySQL 5.4






 PHP 5.3 und
 MySQL 5.4


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2010
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.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de