Galileo Computing < openbook >
Galileo Computing - Programming the Net
Galileo Computing - Programming the Net


Einstieg in ASP.NET von Matthias Lohrer
Einstieg in ASP.NET
gp Kapitel Hinweise zu VB.NET
  gp 3.1 Eine Testumgebung
  gp 3.2 Variablen
    gp 3.2.1 Bezeichner
    gp 3.2.2 VB.NET-Datentypen
  gp 3.3 Konstanten
  gp 3.4 Typkonvertierungen
  gp 3.5 Kontrollstrukturen
    gp 3.5.1 Entscheidungen mit If
    gp 3.5.2 Select Case
    gp 3.5.3 Zählschleife mit For Next
    gp 3.5.4 Schleife mit Do Loop
    gp 3.5.5 Schleife mit While
  gp 3.6 Funktionen und Prozeduren
    gp 3.6.1 Aufbau
    gp 3.6.2 Übergabe von Parametern
  gp 3.7 Klassen erstellen
    gp 3.7.1 Eigenschaften einer Klasse über Felder realisieren
    gp 3.7.2 Eigenschaften mit Property-Prozeduren realisieren
    gp 3.7.3 Schreibgeschützte Eigenschaften
    gp 3.7.4 Methoden erstellen
    gp 3.7.5 Konstruktor erstellen
    gp 3.7.6 Klassen vererben
  gp 3.8 Mit Objekten arbeiten
    gp 3.8.1 Objekte vergleichen
    gp 3.8.2 Den Typ eines Objekts bestimmen
    gp 3.8.3 Objekte in andere Klassen konvertieren
  gp 3.9 Arbeiten mit Arrays
  gp 3.10 Dateizugriffe
  gp 3.11 Fehlerbehandlung mit Try ... Catch ... Finally ... End Try


Galileo Computing

3.11 Fehlerbehandlung mit Try ... Catch ... Finally ... End Try  toptop

Beim Zugriff auf Dateien kann viel schief gehen: Sie haben vielleicht nicht die Berechtigung, die Datei zu lesen oder in die Datei zu schreiben. Die Datei gibt es nicht, die Festplatte ist voll, der Dateiname ist ungültig und so weiter. Wenn ein solcher Fehler unter .NET auftritt, dann generiert das System eine Ausnahme. Mit dem Try ... Catch ... Finally-Konstrukt können Sie in Ihrem Code auf diese Ausnahmen reagieren.

Das Konstrukt ist folgendermaßen aufgebaut:

Try
' Fehleranfälliger Code, z. B. Dateizugriffe
Catch ex As Exception
' Hier wird auf Fehler reagiert.
End Try
' Hier geht es weiter, egal ob Fehler oder nicht.

Wenn zwischen Try und Catch ein Fehler auftritt, fährt die Programmausführung hinter Catch fort. Wenn zwischen Try und Catch kein Fehler auftritt, wird der Catch-Zweig übersprungen und das Programm wird direkt hinter End Try fortgeführt.

Auch Ausnahmen sind Objekte. .NET definiert zahlreiche Klassen für die unterschiedlichen Arten von Fehlern, die auftreten können. Auf unterschiedliche Fehler können Sie unterschiedlich reagieren, indem Sie für spezielle Ausnahmen spezielle Catch-Zweige definieren. Bei Dateizugriffen könnten Sie etwa unterschiedlich reagieren, je nachdem, ob der Pfad ungültig ist oder ob die Datei selbst nicht gefunden werden kann. vb_13.aspx demonstriert ein Beispiel. Wenn ein Teil des Pfades nicht gefunden werden kann, wird eine Ausnahme vom Typ DirectoryNotFoundException generiert. Wenn die Datei selbst nicht gefunden werden kann, wird der Fehler FileNotFoundException generiert.

<!-- vb_13.aspx --> 
<%@ Page Language="VB" Debug="True" Strict="True" %>
<script runat="server">
Sub Page_Load (ByVal Sender As Object, _
               ByVal E As EventArgs)
   Dim datnam As String
   datnam = "c:\vbnet9840-lsop:.txt"
   Dim s, t As String
Try 
   Dim schreiber As _
               New System.IO.StreamWriter(datnam, True)
   schreiber.WriteLine _
                     ("Ich war hier : " & now.toString)
   schreiber.Close()

   Dim leser As New System.IO.StreamReader (datnam)
   s = leser.ReadLine()
   Do Until s Is Nothing
      t &= s & "<br>"
      s = leser.ReadLine()
   Loop
   leser.close()

Catch ex As System.IO.DirectoryNotFoundException
  t= "Das ist der Fehler DirectoryNotFoundException. "
  t &= ex.Message 
 
Catch ex As System.IO.FileNotFoundException
  t= "Das ist der Fehler FileNotFoundException. "
  t &= ex.Message 
  
Catch ex As Exception
   t = "Das ist irgendein anderer Fehler. "
   t &= ex.Message   

End Try 
      
   ausgabe.innerHTML = t

End Sub
</script>
<html><head><title>
Einstieg in VB.NET
</title></head>
<body>
<h3>Einstieg in VB.NET</h3>
<p id="ausgabe" runat="server"></p>
</body></html>

Achten Sie auf die Reihenfolge, in der die Catch-Zweige angegeben werden. Wenn ein Fehler auftritt, führt .NET denjenigen Zweig aus, der als Erster auf die Ausnahme passt. Wenn Sie den Zweig Catch ex As Exception an erster Stelle anführen würden, dann würde immer dieser Zweig ausgeführt, denn alle Ausnahmen stammen von Exception ab.

Vor dem End Try- Statement können Sie außerdem zusätzlich noch einen Finally-Zweig angeben. Dieser wird in jedem Fall ausgeführt, egal, ob ein Fehler auftritt oder nicht.

  

Einstieg in VB.NET

VB.NET

Einstieg in C#

Visual C#

VB.NET und Datenbanken

Einstieg in XML




Copyright © Galileo Press GmbH 2003
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 GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de