Condividi tramite


Procedura: utilizzare il blocco try/catch per l'intercettazione di eccezioni

Aggiornamento: novembre 2007

Inserire le sezioni di codice che potrebbero generare eccezioni in un blocco try e il codice per la gestione delle eccezioni in un blocco catch. Il blocco catch consiste in una serie di istruzioni che inizia con la parola chiave catch, seguita da un tipo di eccezione e da un'operazione da eseguire.

Nota:

Quasi tutte le righe di codice possono causare un'eccezione, in particolare le eccezioni generate nel Common Language Runtime stesso, quali OutOfMemoryException e StackOverflowException. Nella maggior parte delle applicazioni non è necessario gestire queste eccezioni, ma è opportuno tenere presente questa possibilità quando si scrivono librerie che verranno utilizzate da altri. Per suggerimenti su quando impostare codice in un blocco try, vedere Suggerimenti per gestire le eccezioni.

Nell'esempio di codice che segue viene utilizzato un blocco try/catch per intercettare una possibile eccezione. Il metodo Main contiene un blocco try con un'istruzione StreamReader che apre un file di dati denominato data.txt e scrive una stringa dal file. Il blocco try è seguito da un blocco catch che intercetta eventuali eccezioni rilevate dal blocco try.

Esempio

Option Explicit
Option Strict
Imports System
Imports System.IO
Imports System.Security.Permissions
<assembly: FileIOPermissionAttribute(SecurityAction.RequestMinimum, All := "c:\data.txt")>

Public Class ProcessFile
   Public Shared Sub Main()
      Try
         Dim sr As StreamReader = File.OpenText("data.txt")
         Console.WriteLine("The first line of this file is {0}", sr.ReadLine())
      Catch e As Exception
         Console.WriteLine("An error occurred: '{0}'", e)
      End Try
   End Sub
End Class
using System;
using System.IO;
using System.Security.Permissions;
// Security permission request.
[assembly:FileIOPermissionAttribute(SecurityAction.RequestMinimum, All = @"c:\data.txt")]
public class ProcessFile {
    public static void Main() {
        try {
            StreamReader sr = File.OpenText("data.txt");
            Console.WriteLine("The first line of this file is {0}", sr.ReadLine());    
        }
        catch(Exception e) {
            Console.WriteLine("An error occurred: '{0}'", e);
        }
    }
}

Nell'esempio viene illustrata un'istruzione catch di base che intercetterà qualsiasi eccezione. In generale, una buona pratica di programmazione consiste nell'intercettare un tipo di eccezione specifico anziché utilizzare l'istruzione catch di base. Per ulteriori informazioni sull'intercettazione di eccezioni specifiche, vedere Utilizzo di eccezioni specifiche in un blocco catch.

Vedere anche

Attività

Procedura: utilizzare eccezioni specifiche in un blocco catch

Procedura: generare eccezioni in modo esplicito

Procedura: creare eccezioni definite dall'utente

Procedura: utilizzare blocchi Finally

Altre risorse

Nozioni fondamentali sulla gestione delle eccezioni