So verwenden Sie die strukturierte Ausnahmebehandlung in Visual Basic.NET oder in Visual Basic 2005

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 315965 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel veranschaulicht die strukturierte Ausnahmebehandlung in Visual Basic verwenden.NET oder Visual Basic 2005.

Anforderungen

Die folgende Liste führt die empfohlene Hardware, Software, Netzwerkinfrastruktur und Servicepacks, die Sie benötigen:
  • Visual Basic.NET oder Visual Basic 2005
Dieser Artikel setzt voraus, dass Sie mit den folgenden Themen vertraut sind:
  • Visual Basic.NET oder Visual Basic 2005
  • Microsoft Visual Studio.NET oder Microsoft Visual Studio 2005

Strukturierte Ausnahmebehandlung

Visual Basic.NET oder Visual Basic 2005 bietet die strukturierte Ausnahmebehandlung, der bietet eine leistungsstarke, lesbarere Alternative zu "On Error Goto" Error Handling, der in früheren Versionen von Microsoft Visual Basic verfügbar ist. Strukturierte Ausnahmebehandlung ist leistungsfähiger, da es Ihnen ermöglicht, Fehler-Handler in anderen Fehler-Handler in der gleichen Prozedur zu verschachteln. Strukturierte Ausnahmebehandlung verwendet darüber hinaus eine Block-Syntax ähnelt der Wenn...Anderes...End If Anweisung. Dadurch werden Visual Basic.NET und Visual Basic 2005 Code lesbarer und einfacher zu verwalten.

Hinweis: Visual Basic.NET oder Visual Basic 2005 behält die Syntax "On Error Goto", um Abwärtskompatibilität zu gewährleisten. Sie können weiterhin diese Syntax in Visual Basic.NET oder Visual Basic-2005-Code. Jedoch kann keine strukturierte Ausnahmebehandlung und On Error -Anweisungen innerhalb der gleichen Prozedur kombiniert werden. Wenn Sie neuen Code schreiben, Microsoft empfiehlt die Verwendung der strukturierten Ausnahmebehandlung.

Die grundlegende Syntax der strukturierten Fehlerbehandlung ist wie folgt:
Try
   'Code that may raise an error.
Catch
   'Code to handle the error.
Finally
   'Code to do any final clean up.
End Try
				
Try- und End Try -Anweisungen sind erforderlich. Catch und Finally -Anweisungen sind nicht erforderlich, wenn mindestens einer von ihnen in Ihrem Code aufnehmen müssen. Mehrere Catch -Anweisungen können Sie auch angeben, so dass jeder Catch -Block einen bestimmten Fehler behandelt.

Abfangen einer Ausnahme

  1. Starten Sie Visual Studio.NET oder Visual Studio 2005.
  2. Erstellen Sie ein neues Konsolenanwendungsprojekt in Visual Basic.NET oder Visual Basic 2005.
  3. Fügen Sie den folgenden Code in die Sub Main -Prozedur:
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try
    					
  4. Klicken Sie im Menü Debuggen auf Starten , um die Anwendung auszuführen. Der Code versucht, eine Zahl durch Null zu teilen. Dies ist eine unzulässige Operation, die eine Division durch Null Ausnahme verursacht. Glücklicherweise Catch -Block fängt diese Fehler, und das Konsolenfenster zeigt die folgende Fehlermeldung angezeigt:
    A run-time error has occurred
    						
  5. Schließen Sie das Konsolenfenster.

Mehrere Ausnahmen abfangen

In diesem Abschnitt veranschaulicht mehrere Catch -Anweisungen verwenden, um verschiedene Fehler zu behandeln.
  1. Öffnen Sie das Konsolenanwendungsprojekt, das Sie im vorherigen Abschnitt erstellt.
  2. Ersetzen Sie den Code, den Sie im vorherigen Abschnitt mit den folgenden Code kopiert, in die Sub Main -Prozedur:
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Finally
      Console.ReadLine()
    End Try
    						
    Dieser Code enthält zwei Catch -Blöcke: eine vorherige Division durch Null abfangen und eine neue Überlauffehler abfangen.
  3. Klicken Sie im Menü Debuggen auf Starten , um die Anwendung auszuführen. Das Konsolenfenster wird die folgende Fehlermeldung angezeigt:
    Error: Overflow
    						
  4. Schließen Sie das Konsolenfenster.
  5. Da Sie immer alle Fehler vorhersehen können, die auftreten können, können Sie einen Alle Catch -Block für unerwartete Ausnahmen hinzufügen. Fügen Sie beispielsweise den folgenden Code vor der Finally -Anweisung zu unerwarteten Fehler abfangen und die entsprechende Fehlermeldung angezeigt:
    Catch exc As Exception
    Console.WriteLine("Error: " & exc.Message)
    					
  6. Klicken Sie im Menü Datei auf Projektmappe schließen.

Eine Ausnahme

Strukturierte Ausnahmebehandlung verwendet die Catch -Anweisung eine Ausnahme abfangen. Strukturierte Ausnahmebehandlung auch bietet eine Möglichkeit, eine Ausnahme ausgelöst. Beispielsweise empfiehlt es sich um eine Ausnahme auszulösen, wenn Sie Gültigkeitsprüfung innerhalb einer Property Set -Prozedur ausgeführt werden, da Sie möglicherweise ein Fehler ausgelöst, wenn eine Geschäftsregel verletzt wird.
  1. Starten Sie Visual Studio.NET oder Visual Studio 2005.
  2. Erstellen Sie ein neues Konsolenanwendungsprojekt in Visual Basic.NET oder Visual Basic 2005.
  3. Klicken Sie im Menü Projekt auf Klasse hinzufügen.
  4. Geben Sie im Fenster Neues Element hinzufügenclsPerson.vb im Textfeld Name und klicken Sie dann auf OK.
  5. Fügen Sie den folgenden Code in der Public Class ClsPerson...End Class Anweisungen:
    Private mintAge As Integer
    
    Public Property Age() As Integer
      Get
        Age = mintAge
      End Get
      Set(ByVal Value As Integer)
        If Value >= 0 Then
          mintAge = Value
        Else
          Throw New ArgumentException ("Age cannot be negative")
        End If
      End Set
    End Property
    						
    Dieser Code erstellt eine Age -Eigenschaft. Da eine Person eine negative Alter haben kann, wird ein Fehler ausgelöst, wenn der Benutzer der Klasse versucht, Alter auf eine Zahl, die kleiner als 0 (null) festgelegt.
  6. Fügen Sie in der Sub Main -Prozedur "Module1.vb" den folgenden Code ein:
    Dim p As New clsPerson()
    
    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
    					
  7. Klicken Sie im Menü Debuggen auf Starten , um die Anwendung auszuführen. Das Konsolenfenster wird die folgende Fehlermeldung angezeigt:
    Age cannot be negative
    						
  8. Schließen Sie das Konsolenfenster.

Vollständige Codeauflistung

Abfangen einer Ausnahme

Module Module1

  Sub Main()
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try

  End Sub

End Module
				

Mehrere Ausnahmen abfangen

Module Module1

  Sub Main()
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Catch exc As Exception
      Console.WriteLine("Error: " & exc.Message)
    Finally
      Console.ReadLine()
    End Try


  End Sub

End Module
				

Eine Ausnahme

Module Module1

  Sub Main()
    Dim p As New clsPerson()

    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
  End Sub

End Module

Public Class clsPerson

  Private mintAge As Integer

  Public Property Age() As Integer
    Get
      Age = mintAge
    End Get
    Set(ByVal Value As Integer)
      If Value >= 0 Then
        mintAge = Value
      Else
        Throw New ApplicationException("Age cannot be negative")
      End If
    End Set
  End Property

End Class
				

REFERENZEN

Weitere Informationen finden Sie auf der folgenden Microsoft-Websites:
Fehler bei der Verarbeitung der ASP.NET Weg: Leben mit Ausnahmen ( Visual Basic-Developer -Artikel)
http://msdn.Microsoft.com/en-us/library/aa227603 (v=vs.60) aspx

Wie führen Sie eine Ausnahme abfangen
http://msdn.Microsoft.com/en-us/library/ys1b32h3 (v=vs.80) aspx

Wie führen Sie eine Ausnahme auslösen
http://msdn.Microsoft.com/en-us/library/z7w9ff54 (v=vs.80) aspx

Eigenschaften

Artikel-ID: 315965 - Geändert am: Freitag, 15. Juni 2012 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Keywords: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 315965
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com