Definizione del codice per la gestione degli errori

Aggiornamento: novembre 2007

In questa lezione verrà descritto come creare codice di gestione degli errori di base per i programmi sviluppati.

Anche i programmi progettati con estrema cura non sono esenti da errori. Alcuni errori sono difetti del codice che è possibile rilevare e correggere. Altri sono una naturale conseguenza dell'esecuzione del programma, ad esempio un programma potrebbe tentare di aprire un file già in uso. In questo secondo caso è possibile prevedere l'errore, ma non impedire che si verifichi. Compito del programmatore è prevedere questo tipo di errori e consentire al programma di gestirli.

Errori di runtime

Un errore che si verifica durante l'esecuzione di un programma è denominato errore di runtime. Un errore di runtime si verifica quando un programma tenta di eseguire un'operazione per la quale non è stato progettato. Se, ad esempio, un programma tenta di eseguire un'operazione non consentita, quale la conversione di una stringa non numerica in un valore numerico, si verificherà un errore di runtime.

In caso di errore di runtime, viene generata un'eccezione, la quale tenta di risolvere gli errori cercando nel programma apposito codice di gestione. Se tale codice non viene trovato, l'esecuzione verrà interrotta e il programma dovrà essere riavviato. Poiché il riavvio può comportare una perdita di dati, è consigliabile creare codice di gestione per tutti gli errori previsti.

Blocco Try...Catch...Finally

Il blocco Try...Catch...Finally consente di gestire errori di runtime nel codice. È possibile provare a eseguire (Try) un segmento di codice. Se viene generata un'eccezione, il programma passerà al blocco Catch. Verrà quindi eseguito il codice nel blocco Catch. Al termine dell'esecuzione di questo codice, verrà eseguito tutto il codice del blocco Finally. Il blocco Try...Catch...Finally termina con un'istruzione End Try. Nell'esempio riportato di seguito viene illustrato l'utilizzo di ogni blocco.

Try
  ' Code here attempts to do something.
Catch
  ' If an error occurs, code here will run.
Finally
  ' Code in this block will always run.
End Try

Innanzitutto, viene eseguito il codice nel blocco Try. Se non si verifica alcun errore, il programma ignorerà il blocco Catch ed eseguirà il codice nel blocco Finally. Se si verifica un errore nel blocco Try, l'esecuzione passerà immediatamente al blocco Catch. Verrà eseguito il codice in tale blocco, quindi il codice nel blocco Finally.

Procedura

Per utilizzare il blocco Try...Catch

  1. Scegliere Nuovo progetto dal menu File.

  2. Nel riquadro Modelli della finestra di dialogo Nuovo progetto fare clic su Applicazione Windows.

  3. Digitare TryCatch nella casella Nome, quindi scegliere OK.

    Verrà aperto un nuovo progetto Windows Form.

  4. Dalla Casella degli strumenti trascinare un controllo TextBox e un controllo Button nel form.

  5. Fare doppio clic sul controllo Button per aprire l'editor di codice.

  6. Nel gestore eventi Button1_Click digitare il seguente codice:

    Try
      Dim aNumber As Double = CDbl(Textbox1.Text)
      MsgBox("You entered the number " & aNumber)
    Catch
      MsgBox("Please enter a number.")
    Finally
      MsgBox("Why not try it again?")
    End Try
    
  7. Premere F5 per eseguire il programma.

  8. Digitare un valore numerico nella casella di testo, quindi fare clic sul pulsante. Verrà visualizzata una finestra di messaggio contenente il numero immesso, seguito da un invito a riprovare.

  9. Digitare un valore non numerico nella casella di testo, ad esempio una parola, quindi fare clic sul pulsante. Quando il programma tenterà di convertire in un numero il testo immesso nella casella di testo, si verificherà un errore perché l'operazione non può essere completata. Anziché completare l'esecuzione del codice nel blocco Try, verrà eseguito il blocco Catch e verrà visualizzata una finestra di messaggio per chiedere di immettere un numero. Verrà quindi eseguito il blocco Finally, che invita l'utente a riprovare.

Passaggi successivi

In questa lezione è stato descritto come utilizzare blocchi Try...Catch...Finally per creare una struttura di gestione degli errori di base. Questa lezione conclude l'introduzione al linguaggio Visual Basic. Nella serie successiva di lezioni verrà descritto come creare l'interfaccia utente per i programmi sviluppati.

Lezione successiva: Creazione dell'aspetto visivo del programma: introduzione a Windows Form

Vedere anche

Attività

Scelta tra due possibilità: istruzione If...Then

Cenni preliminari sugli errori: tre tipi di errori di programmazione

Riferimenti

Istruzione Try...Catch...Finally (Visual Basic)

Altre risorse

Gestione delle eccezioni strutturata in Visual Basic