ΔΙΑΔΙΚΑΣΙΕΣ: χρήση δομημένη εξαίρεση χειρισμό σε Visual Basic .NET ή Visual Basic 2005

Σύνοψη

Αυτό το άρθρο περιγράφει τον τρόπο χρήσης δομημένη εξαίρεση χειρισμό σε Visual Basic .NET ή Visual Basic του 2005.

Απαιτήσεις

Η ακόλουθη λίστα περιγράφει το υλικού που συνιστώνται, λογισμικό, υποδομή δικτύου και τα service pack που χρειάζεστε:
  • Visual Basic .NET ή Visual Basic 2005
Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τα ακόλουθα θέματα:
  • Visual Basic .NET ή Visual Basic 2005
  • Microsoft Visual Studio .NET ή Microsoft Visual Studio 2005

Χειρισμού εξαιρέσεων δομημένη

Visual Basic .NET ή Visual Basic 2005 προσφέρει χειρισμό δομημένη εξαίρεση που παρέχει μια ισχυρή, πιο ευανάγνωστο εναλλακτική λύση "Μετάβαση σε σχετικά με το σφάλμα" σφάλμα χειρισμού, που είναι διαθέσιμες σε προηγούμενες εκδόσεις της Microsoft Visual Basic. Χειρισμού εξαιρέσεων δομημένη είναι πιο ισχυρή, επειδή σας επιτρέπει να κάνετε ένθεση δείκτες χειρισμού σφαλμάτων μέσα σε άλλα προγράμματα χειρισμού σφαλμάτων κατά την ίδια διαδικασία. Επιπλέον, χειρισμού εξαιρέσεων δομημένη χρησιμοποιεί ένα μπλοκ σύνταξη παρόμοια με το αν... Άλλος... End If δήλωση. Με αυτόν τον τρόπο κώδικα Visual Basic .NET και Visual Basic 2005 πιο ευανάγνωστη και πιο εύκολο να διατηρηθούν.

ΣΗΜΕΊΩΣΗ: Visual Basic .NET ή Visual Basic 2005 διατηρεί τη σύνταξη "Μετάβαση σε σχετικά με το σφάλμα" για συμβατότητα με παλαιότερες εκδόσεις. Μπορείτε να χρησιμοποιήσετε αυτήν τη σύνταξη στον κώδικα Visual Basic .NET ή Visual Basic 2005. Ωστόσο, δεν μπορείτε να συνδυάσετε χειρισμού εξαιρέσεων δομημένη και On Error δηλώσεως κατά την ίδια διαδικασία. Όταν γράφετε νέο κωδικό, η Microsoft συνιστά να χρησιμοποιείτε δομημένο χειρισμού εξαιρέσεων.

Η βασική σύνταξη χειρισμός σφαλμάτων δομημένη είναι ως εξής:
Try   'Code that may raise an error.
Catch
'Code to handle the error.
Finally
'Code to do any final clean up.
End Try

Οι καταστάσεις και Τέλος προσπαθήστε απαιτούνται. Οι καταστάσεις Catch και τελικά δεν είναι απαραίτητα, αν τουλάχιστον ένα από αυτά θα πρέπει να το συμπεριλάβετε στον κώδικά σας. Μπορείτε επίσης να καθορίσετε πολλαπλές δηλώσεις Catch , έτσι ώστε κάθε μπλοκ Catch χειρίζεται ένα συγκεκριμένο σφάλμα.

Εντοπίσει μία εξαίρεση

  1. Ξεκινήστε το Visual Studio .NET ή Visual Studio 2005.
  2. Δημιουργήστε ένα νέο έργο εφαρμογής κονσόλας στο Visual Basic .NET ή Visual Basic του 2005.
  3. Στη διαδικασία Sub Main , προσθέστε τον ακόλουθο κώδικα:
    Dim a As Integer = 0Dim 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. Από το μενού Εντοπισμός σφαλμάτων , κάντε κλικ στην επιλογή Έναρξη για να εκτελέσετε την εφαρμογή. Ο κώδικας προσπαθεί να τη διαίρεση ενός αριθμού με το μηδέν. Αυτή είναι μια εσφαλμένη λειτουργία που έχει ως αποτέλεσμα μια διαίρεση με μηδέν εξαίρεση. Ευτυχώς, το μπλοκ Catch εντοπίζει αυτό το σφάλμα, και το παράθυρο της κονσόλας εμφανίζει το ακόλουθο μήνυμα λάθους:
    A run-time error has occurred

  5. Κλείστε το παράθυρο της κονσόλας.

Καταγράφει τις πολλές εξαιρέσεις

Αυτή η ενότητα παρουσιάζει πώς μπορείτε να χρησιμοποιήσετε πολλαπλές δηλώσεις Catch για χειρισμό σφαλμάτων διαφορετικές.

  1. Ανοίξτε το έργο εφαρμογής κονσόλας που δημιουργήσατε στην προηγούμενη ενότητα.
  2. Στη διαδικασία Sub Main , αντικαταστήστε τον κώδικα που αντιγράψατε στην προηγούμενη ενότητα με τον ακόλουθο κώδικα:
    Dim a As Integer = 2147483647Dim 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

    Αυτός ο κωδικός περιλαμβάνει δύο μπλοκ Catch : μία για να τραβήξετε την προηγούμενη διαίρεση με μηδέν σφάλμα και μία για να τραβήξετε το νέο σφάλμα υπερχείλισης.
  3. Από το μενού Εντοπισμός σφαλμάτων , κάντε κλικ στην επιλογή Έναρξη για να εκτελέσετε την εφαρμογή. Το παράθυρο της κονσόλας εμφανίζει το ακόλουθο μήνυμα λάθους:
    Error: Overflow

  4. Κλείστε το παράθυρο της κονσόλας.
  5. Επειδή δεν μπορείτε να προβλέψετε πάντα κάθε σφάλμα που ενδέχεται να προκύψουν, μπορείτε να προσθέσετε ένα μπλοκ Catch όλα για μη αναμενόμενες εξαιρέσεις. Για παράδειγμα, προσθέστε τον ακόλουθο κώδικα πριν από την πρόταση " Τέλος " για να εντοπίσετε τυχόν λάθη μη αναμενόμενες και εμφανίζει το κατάλληλο μήνυμα λάθους:
    Catch exc As ExceptionConsole.WriteLine("Error: " & exc.Message)

  6. Στο μενού αρχείο , κάντε κλικ στο κουμπί Κλείσιμο λύση.

Δημιουργήστε μια εξαίρεση

Χειρισμού εξαιρέσεων δομημένη χρησιμοποιεί την πρόταση Catch για να τραβήξετε μια εξαίρεση. Δομημένη εξαίρεση διακινούνται επίσης παρέχει έναν τρόπο για να δημιουργήσει μια εξαίρεση. Για παράδειγμα, είναι χρήσιμο να δημιουργήσει μια εξαίρεση κατά την εκτέλεση επικύρωσης δεδομένων μέσα σε μια διαδικασία με Ιδιότητα την τιμή , επειδή θέλετε να δημιουργήσετε ένα σφάλμα εάν παραβιαστεί ένας κανόνας της επιχείρησης.

  1. Ξεκινήστε το Visual Studio .NET ή Visual Studio 2005.
  2. Δημιουργήστε ένα νέο έργο εφαρμογής κονσόλας στο Visual Basic .NET ή Visual Basic του 2005.
  3. Στο μενού ' έργο ', κάντε κλικ στο κουμπί Προσθήκη κλάσης.
  4. Στο παράθυρο " Προσθήκη νέου στοιχείου ", πληκτρολογήστε clsPerson.vb στο πλαίσιο κειμένου " όνομα " και, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  5. Προσθέστε τον ακόλουθο κώδικα στο εσωτερικό της 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 ArgumentException ("Age cannot be negative")
    End If
    End Set
    End Property

    Αυτός ο κώδικας δημιουργεί μια ιδιότητα ηλικία . Επειδή ένα άτομο δεν μπορεί να έχει μια αρνητική ηλικία, σφάλμα ενεργοποιείται όταν ο χρήστης της κλάσης προσπαθήσει να ορίσετε ηλικία σε έναν αριθμό που είναι μικρότερο από το μηδέν.
  6. Στη διαδικασία Sub Main της Module1.vb, προσθέστε τον ακόλουθο κώδικα:
    Dim p As New clsPerson()
    Try
    p.Age = -1
    Catch exc As Exception
    Console.WriteLine(exc.Message)
    Finally
    Console.ReadLine()
    End Try

  7. Από το μενού Εντοπισμός σφαλμάτων , κάντε κλικ στην επιλογή Έναρξη για να εκτελέσετε την εφαρμογή. Το παράθυρο της κονσόλας εμφανίζει το ακόλουθο μήνυμα λάθους:
    Age cannot be negative

  8. Κλείστε το παράθυρο της κονσόλας.

Ολοκληρώσετε την καταχώρηση κωδικού

Εντοπίσει μία εξαίρεση

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

Καταγράφει τις πολλές εξαιρέσεις

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

Δημιουργήστε μια εξαίρεση

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

ΑΝΑΦΟΡΈΣ

Για περισσότερες πληροφορίες, ανατρέξτε στις ακόλουθες τοποθεσίες της Microsoft στο Web:

Σφάλμα κατά το χειρισμό του τρόπου VB.NET: ζουν με εξαιρέσεις (ένα άρθρο Προγραμματιστές Visual Basic )
http://msdn.microsoft.com/en-us/library/aa227603(v=vs.60).aspx

Πώς μπορώ να εντοπίσει μία εξαίρεση
http://msdn.microsoft.com/en-us/library/ys1b32h3(v=vs.80).aspx

Πώς μπορώ να δημιουργήσει μια εξαίρεση
http://msdn.microsoft.com/en-us/library/z7w9ff54(v=vs.80).aspx

Ιδιότητες

Αναγνωριστικό άρθρου: 315965 - Τελευταία αναθεώρηση: 21 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια