Come utilizzare la gestione strutturata delle eccezioni in Visual Basic.NET o in Visual Basic 2005

Traduzione articoli Traduzione articoli
Identificativo articolo: 315965 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene illustrato come utilizzare la gestione strutturata delle eccezioni in Visual Basic.NET o in Visual Basic 2005.

Requisiti

Nell'elenco seguente vengono indicati l'hardware consigliato, software, infrastruttura di rete e service pack Ŕ necessario:
  • Visual Basic.NET o Visual Basic 2005
In questo articolo si presuppone che abbia familiaritÓ con i seguenti argomenti:
  • Visual Basic.NET o Visual Basic 2005
  • Microsoft Visual Studio.NET o Microsoft Visual Studio 2005

Gestione strutturata delle eccezioni

Visual Basic.NET o Visual Basic 2005 offre la gestione delle eccezioni strutturata che fornisce un'alternativa pi¨ leggibile e potente per la gestione degli errori "On Error Goto", disponibile nelle versioni precedenti di Microsoft Visual Basic. Gestione delle eccezioni strutturata Ŕ pi¨ potente perchÚ consente di nidificare i gestori degli errori all'interno di altri gestori di errori all'interno della routine stessa. Inoltre, la gestione delle eccezioni strutturata utilizza una sintassi di blocco simile per il se...Else...End If istruzione. In questo modo Visual Basic.NET e 2005 di Visual Basic il codice pi¨ leggibile e pi¨ facile da gestire.

Nota: Visual Basic.NET o il Visual Basic 2005 mantiene la sintassi "On Error Goto" per la compatibilitÓ con le versioni precedenti. ╚ comunque possibile utilizzare questa sintassi in Visual Basic.NET o Visual Basic 2005 codice. Tuttavia, Ŕ possibile combinare la gestione delle eccezioni strutturata e le istruzioni On Error all'interno della routine stessa. Quando si scrive nuovo codice, Microsoft consiglia di utilizzare Gestione delle eccezioni strutturata.

La sintassi di base di gestione delle eccezioni strutturata Ŕ la seguente:
Try
   'Code that may raise an error.
Catch
   'Code to handle the error.
Finally
   'Code to do any final clean up.
End Try
				
Le istruzioni Try ed End Try sono necessarie. Le istruzioni Catch e Finally non sono richieste, anche se Ŕ necessario includere almeno uno di essi nel codice. ╚ inoltre possibile specificare pi¨ istruzioni Catch in modo che ogni blocco Catch gestisce un errore specifico.

Intercettare un'eccezione

  1. Avviare Visual Studio.NET o Visual Studio 2005.
  2. Creare un nuovo progetto applicazione Console in Visual Basic.NET o in Visual Basic 2005.
  3. Nella routine Sub Main , aggiungere il seguente codice:
    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. Dal menu Debug , fare clic su Start per eseguire l'applicazione. Il codice tenta di dividere un numero per zero. Si tratta di un'operazione non valida causa una divisione per zero eccezione. Per fortuna, il blocco Catch intercetta l'errore e la finestra della Console viene visualizzato il seguente messaggio di errore:
    A run-time error has occurred
    						
  5. Chiudere la finestra di Console.

Intercettare le eccezioni pi¨

In questa sezione viene illustrato come utilizzare pi¨ istruzioni Catch per gestire gli errori diversi.
  1. Aprire il progetto di applicazione Console creata nella sezione precedente.
  2. Nella routine Sub Main , sostituire il codice copiato nella sezione precedente con il seguente codice:
    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
    						
    Questo codice include due blocchi Catch : uno per intercettare il precedente divisione per zero e uno per rilevare l'errore di overflow di nuovo.
  3. Dal menu Debug , fare clic su Start per eseguire l'applicazione. Nella finestra della Console viene visualizzato il seguente messaggio di errore:
    Error: Overflow
    						
  4. Chiudere la finestra di Console.
  5. PoichÚ Ŕ sempre possibile prevedere tutti gli errori che possono verificarsi, Ŕ possibile aggiungere un blocco Catch tutti per le eccezioni non previste. Ad esempio, aggiungere il codice seguente prima dell'istruzione Finally per rilevare eventuali errori imprevisti e visualizzare il messaggio di errore appropriato:
    Catch exc As Exception
    Console.WriteLine("Error: " & exc.Message)
    					
  6. Scegliere Chiudi soluzionedal menu File .

Genera un'eccezione

Gestione delle eccezioni strutturata viene utilizzata l'istruzione Catch per intercettare un'eccezione. Gestione delle eccezioni strutturata inoltre consente di generare un'eccezione. Ad esempio, Ŕ utile generare un'eccezione quando si esegue la convalida dei dati all'interno di una routine Property Set poichÚ Ŕ possibile generare un errore se viene violata una regola di business.
  1. Avviare Visual Studio.NET o Visual Studio 2005.
  2. Creare un nuovo progetto applicazione Console in Visual Basic.NET o in Visual Basic 2005.
  3. Scegliere Aggiungi classedal menu progetto .
  4. Nella finestra Aggiungi nuovo elemento digitare clsPerson.vb nel testo del nome casella e quindi fare clic su OK.
  5. Aggiungere il seguente codice all'interno di clsPerson Public Class...Terminare la classe istruzioni:
    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
    						
    Questo codice crea una proprietÓ Age . PoichÚ un utente non pu˛ avere una durata negativa, viene generato un errore se l'utente della classe tenta di impostare la validitÓ di un numero minore di zero.
  6. Nella routine Sub Main di Module1. vb, aggiungere il seguente codice:
    Dim p As New clsPerson()
    
    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
    					
  7. Dal menu Debug , fare clic su Start per eseguire l'applicazione. Nella finestra della Console viene visualizzato il seguente messaggio di errore:
    Age cannot be negative
    						
  8. Chiudere la finestra di Console.

Elenco completo del codice

Intercettare un'eccezione

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
				

Intercettare le eccezioni pi¨

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
				

Genera un'eccezione

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
				

RIFERIMENTI

Per ulteriori informazioni, consultare i seguenti siti Web Microsoft:
Errore di gestione di VB.NET modo: Vive con eccezioni (un articolo di Visual Basic Developer )
aspx http://msdn.microsoft.com/en-us/library/aa227603 (v=vs.60)

Come per intercettare un'eccezione
aspx http://msdn.microsoft.com/en-us/library/ys1b32h3 (v=vs.80)

Come viene generata un'eccezione
aspx http://msdn.microsoft.com/en-us/library/z7w9ff54 (v=vs.80)

ProprietÓ

Identificativo articolo: 315965 - Ultima modifica: venerdý 15 giugno 2012 - Revisione: 2.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Chiavi:á
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 315965
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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