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