Cum se utilizează excepție structurate de manipulare în Visual Basic.NET sau în Visual Basic 2005

Traduceri articole Traduceri articole
ID articol: 315965 - View products that this article applies to.
Măriți totul | Reduceți totul

În această pagină

REZUMAT

Prezentul articol demonstrează cum se utilizează excepție structurate de manipulare în Visual Basic.NET sau în Visual Basic 2005.

Cerin?ele

Listă tabel următoare evidențiază hardware recomandate, software-ul, infrastructura re?elei, ?i pachete de consolidare servicii care aveți nevoie:
  • Visual Basic.NET sau Visual Basic 2005
Acest articol presupune că sunteți familiarizați cu următoarele subiecte:
  • Visual Basic.NET sau Visual Basic 2005
  • Microsoft Visual Studio .NET sau Microsoft Visual Studio 2005

Structurat excepție manipulare

Visual Basic.NET sau Visual Basic 2005 oferă excepție structurate de manipulare care oferă o alternativă puternic, mai ușor de citit pentru manipularea eroare "On Error Goto", care este disponibilă în versiunile anterioare de Microsoft Visual Basic. Excepție structurate de manipulare este mai puternic pentru că vă permite să imbricați gestionari de eroare în interiorul altor gestionari de eroare în cadrul aceleia?i proceduri. În plus, excepție structurate manipularea utilizează o sintaxă bloc similar la dacă...Altceva...Sfârșitul dacă declarație. Acest lucru face Visual Basic.NET și Visual Basic 2005 cod mai ușor de citit și mai ușor pentru a menține.

Notă: Visual Basic.NET sau Visual Basic 2005 păstrează sintaxa "On Error Goto" pentru compatibilitate reface programul sursă. Se poate utiliza această sintaxă în Visual Basic.Codul NET sau Visual Basic 2005. Cu toate acestea, vă pot combina manipularea excepție structurate și declarații Pe eroare în aceea?i procedură. Când scrieți noul cod, Microsoft recomandă să utilizați structurat manipularea de excepție.

Sintaxa bază de eroare structurate manipulare este după cum urmează:
Try
   'Code that may raise an error.
Catch
   'Code to handle the error.
Finally
   'Code to do any final clean up.
End Try
				
Încercați și Sfârșitul încercați declarațiile sunt necesare. Declarațiile de captură și în cele din urmă nu sunt necesare, deși trebuie să includeți cel puțin unul dintre ei în codul dumneavoastră. Se poate specifica, de asemenea, mai multe declarații de captură , astfel încât fiecare bloc Catch tratează o eroare specifice.

Prinde o excepție

  1. Start Visual Studio .NET sau Visual Studio 2005.
  2. Creați un nou proiect de consola de aplicații în Visual Basic.NET sau în Visual Basic 2005.
  3. În procedura de Sub principal , adăugați următorul cod:
    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. Din meniul depanare , faceți clic pe Start pentru a executa cererea. Codul încearcă să împartă un număr de zero. Aceasta este o opera?iune ilegală care cauzează o divizare prin excepție de zero. Din fericire, bloc Catch capturile această eroare, și fereastra consolei afișează următorul mesaj de eroare:
    A run-time error has occurred
    						
  5. Închideți fereastra consolei.

Prinde mai multe excep?ii

Această secțiune demonstrează cum se utilizează mai multe declarații de captură să se ocupe de diferite erori.
  1. Deschide proiectul Consola de aplicații, care l-ați creat în secțiunea precedentă.
  2. În procedura Principală Sub , înlocuiți codul care le-ați copiat în secțiunea anterioară cu următorul cod:
    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
    						
    Acest cod include două blocuri de captură : unul pentru a prinde decalajului anterioare de eroare zero, și unul pentru a prinde eroarea overflow noi.
  3. Din meniul depanare , faceți clic pe Start pentru a executa cererea. Fereastra consolei afișează următorul mesaj de eroare:
    Error: Overflow
    						
  4. Închideți fereastra consolei.
  5. Deoarece nu anticipați întotdeauna fiecare eroare care se pot produce, puteți adăuga un bloc Catch toate excepții neprevăzute. De exemplu, adăugați următorul cod înainte de declara?ia în cele din urmă pentru a prinde orice erori neprevăzute și afișa mesajul de eroare corespunzătoare:
    Catch exc As Exception
    Console.WriteLine("Error: " & exc.Message)
    					
  6. Din meniul Fișier , faceți clic pe Soluția strânsă.

Arunca excepție

Excepție structurate manipularea utilizează instrucțiunea prinde pentru a prinde o excepție. Excepție structurate de manipulare, de asemenea, oferă o modalitate de a arunca o excepție. De exemplu, este util pentru a arunca o excepție atunci când efectuați validare acoperire de date în interiorul unei proceduri de Proprietate setată pentru că poate doriți să arunce o eroare dacă o regulă de afaceri este încălcat.
  1. Start Visual Studio .NET sau Visual Studio 2005.
  2. Creați un nou proiect de consola de aplicații în Visual Basic.NET sau în Visual Basic 2005.
  3. Din meniul proiect , faceți clic pe Adăugați clasa.
  4. În fereastra Adăugare element nou , tastați clsPerson.vb în caseta de text Nume și apoi faceți clic pe OK.
  5. Adăugați următorul cod în interiorul clsPerson clasa publica...Sfârșitul clasa instrucțiuni:
    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
    						
    Acest cod creează o proprietate de vârstă . Pentru că o persoană nu poate avea o vârstă negative, o eroare este crescut în cazul în care utilizatorul de clasa încearcă să setați vârsta la un număr care este mai mică decât zero.
  6. În procedura Principală Sub Module1.vb, adăugați următorul cod:
    Dim p As New clsPerson()
    
    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
    					
  7. Din meniul depanare , faceți clic pe Start pentru a executa cererea. Fereastra consolei afișează următorul mesaj de eroare:
    Age cannot be negative
    						
  8. Închideți fereastra consolei.

Listă completă de cod

Prinde o excepție

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
				

Prinde mai multe excep?ii

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
				

Arunca excepție

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
				

REFERINȚE

Pentru mai multe informații, se referă la următoarele site-uri Web Microsoft:
Eroare de manipulare VB.NET Way: Condiții de viață cu excepții (articolul un Dezvoltator Visual Basic )
http://msdn.Microsoft.com/en-us/library/aa227603 (v=vs.60) .aspx

Cum a I a prinde o excepție
http://msdn.Microsoft.com/en-us/library/ys1b32h3 (v=vs.80) .aspx

Cum am arunca o excepție
http://msdn.Microsoft.com/en-us/library/z7w9ff54 (v=vs.80) .aspx

Proprietă?i

ID articol: 315965 - Ultima examinare: 15 iunie 2012 - Revizie: 2.0
SE APLICĂ LA:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Cuvinte cheie: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greșeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 315965

Trimite?i feedback

 

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