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 Neues in Visual Basic 2008
12 Beispielprojekte
A Installation
B Lösungen der Übungsaufgaben
Stichwort

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

Spacer
 <<   zurück
Einstieg in Visual Basic 2008 von Thomas Theis
Inkl. zahlreicher Beispiele und Uebungen
Buch: Einstieg in Visual Basic 2008

Einstieg in Visual Basic 2008
geb., mit DVD
442 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1192-5
Online bestellenJetzt online bestellen
* versandkostenfrei in (D) und (A)
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 an Anfang an zu unterbinden. Dies ist allerdings unmöglich, da es Vorgänge gibt, auf die der Programm-Entwickler keinen Einfluss hat, 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 p0302 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 frm0302 
   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

Abbildung 3.2  Eingabe korrekter Zahlen

OverFlowException

Gibt der Benutzer die Zahlen 12 und 3 ein, erscheint als Ergebnis erwartungsgemäß die Zahl 4. Wenn er dagegen die Zahlen 12 und 0 eingibt, dann tritt eine unbehandelte Ausnahme des Typs »OverFlowException« auf.

Abbildung 3.3  OverFlowException

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.

Abbildung 3.4  InvalidCastException

Die leere Zeichenkette im Eingabefeld konnte nicht in eine Zahl vom Typ Integer umgewandelt werden. Dieser Fehler könnte natürlich durch Einsatz der Funktion Val() umgangen werden, er soll aber zu Demonstrationszwecken erhalten bleiben.


Galileo Computing - Zum Seitenanfang

3.3.2 Einfaches Exception Handling  Zur nächsten ÜberschriftZur vorigen Überschrift

Das Programm p0302 wird nun zur Behandlung der Exceptions wie folgt verbessert:

Public Class frm0302 
   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

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 die folgende Fehlermeldung im Label:

Abbildung 3.5  Überlauf abgefangen

Gibt der Benutzer eine der beiden Zahlen gar nicht ein, so erscheint die andere Fehlermeldung im Label:

Abbildung 3.6  Ungültige Konvertierung 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. Das Programm p0302 erfährt im Folgenden eine weitere Verbesserung:

Public Class frm0302 
   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

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ätte man 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 2008






Einstieg in Visual Basic 2008
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual Basic 2008






 Visual Basic 2008


Zum Katalog: Einstieg in Visual C++ 2008






 Einstieg in
 Visual C++ 2008


Zum Katalog: Einstieg in Visual C# 2008






 Einstieg in
 Visual C# 2008


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: Visual C# - Video-Training






 Visual C# -
 Video-Training


Zum Katalog: Einstieg in PHP 5 und MySQL 5






 Einstieg in PHP 5
 und MySQL 5


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





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