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

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
Sommario
In questo articolo viene illustrato come utilizzare la gestione strutturata delle eccezioni in Visual Basic.NET o in Visual Basic 2005.

back to the top

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
back to the top

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.

back to the top

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 = 0Dim b As Integer = 0Dim c As Integer = 0Try  a = b \ cCatch 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.
back to the top

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 = 2147483647Dim b As Integer = 0Dim c As Integer = 0Try  a += 1Catch 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 ExceptionConsole.WriteLine("Error: " & exc.Message)					
  6. Scegliere Chiudi soluzionedal menu File .
back to the top

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 IntegerPublic 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 SetEnd 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 = -1Catch 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.
back to the top

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 SubEnd Module				
back to the top

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 SubEnd Module				
back to the top

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 SubEnd ModulePublic 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 PropertyEnd Class				
back to the top

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)

back to the top

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 315965 - Ultima revisione: 06/15/2012 08:30:00 - Revisione: 2.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtit
Feedback