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

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 315965 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο περιγράφει τον τρόπο χρήσης δομημένων εξαίρεση χειρισμό σε 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 και 2005 Visual Basic πιο ευανάγνωστη και πιο εύκολο να διατηρηθούν.

ΣΗΜΕΊΩΣΗ: 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 = 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. Από το μενού Εντοπισμός σφαλμάτων , κάντε κλικ στο κουμπί Έναρξη για να εκτελέσετε την εφαρμογή. Ο κώδικας προσπαθεί να τη διαίρεση ενός αριθμού με το μηδέν. Αυτή είναι μια εσφαλμένη λειτουργία που έχει ως αποτέλεσμα μια διαίρεση με μηδέν εξαίρεση. Ευτυχώς, το μπλοκ Catch εντοπίζει αυτό το σφάλμα, και το παράθυρο της κονσόλας εμφανίζει το ακόλουθο μήνυμα λάθους:
    A run-time error has occurred
    						
  5. Κλείστε το παράθυρο της κονσόλας.

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

Αυτή η ενότητα δείχνει πώς να χρησιμοποιήσετε πολλαπλές δηλώσεις Catch για χειρισμό σφαλμάτων διαφορετικές.
  1. Ανοίξτε το έργο εφαρμογής κονσόλας που δημιουργήσατε στην προηγούμενη ενότητα.
  2. Στη διαδικασία 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")
    Finally
      Console.ReadLine()
    End Try
    						
    Αυτός ο κωδικός περιλαμβάνει δύο μπλοκ Catch : μία για να τραβήξετε την προηγούμενη διαίρεση με μηδέν σφάλμα και μία για να τραβήξετε το νέο σφάλμα υπερχείλισης.
  3. Από το μενού Εντοπισμός σφαλμάτων , κάντε κλικ στο κουμπί Έναρξη για να εκτελέσετε την εφαρμογή. Το παράθυρο της κονσόλας εμφανίζει το ακόλουθο μήνυμα λάθους:
    Error: Overflow
    						
  4. Κλείστε το παράθυρο της κονσόλας.
  5. Επειδή δεν μπορείτε να προβλέψετε πάντα κάθε σφάλμα που ενδέχεται να προκύψουν, μπορείτε να προσθέσετε ένα μπλοκ Catch όλα για μη αναμενόμενες εξαιρέσεις. Για παράδειγμα, προσθέστε τον ακόλουθο κώδικα πριν από την πρόταση " Τέλος " για να εντοπίσετε τυχόν λάθη μη αναμενόμενες και εμφανίζει το κατάλληλο μήνυμα λάθους:
    Catch exc As Exception
    Console.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 - Τελευταία αναθεώρηση: Τρίτη, 29 Οκτωβρίου 2013 - Αναθεώρηση: 3.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Λέξεις-κλειδιά: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 315965

Αποστολή σχολίων

 

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