Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Inserire qualsiasi istruzione di codice che potrebbe sollevare o generare un'eccezione in un blocco try
e inserire istruzioni usate per gestire l'eccezione o le eccezioni in uno o più blocchi catch
seguenti al blocco try
. Ogni catch
blocco include il tipo di eccezione e può contenere istruzioni aggiuntive necessarie per gestire tale tipo di eccezione.
Nell'esempio seguente, un file denominato StreamReader viene aperto e si recupera una riga dal file. Poiché il codice potrebbe generare una qualsiasi di tre eccezioni, viene inserito in un try
blocco. Tre catch
blocchi intercettano le eccezioni e le gestiscono visualizzando i risultati nella console.
using System;
using System.IO;
public class ProcessFile
{
public static void Main()
{
try
{
using (StreamReader sr = File.OpenText("data.txt"))
{
Console.WriteLine($"The first line of this file is {sr.ReadLine()}");
}
}
catch (FileNotFoundException e)
{
Console.WriteLine($"The file was not found: '{e}'");
}
catch (DirectoryNotFoundException e)
{
Console.WriteLine($"The directory was not found: '{e}'");
}
catch (IOException e)
{
Console.WriteLine($"The file could not be opened: '{e}'");
}
}
}
Imports System.IO
Public Class ProcessFile
Public Shared Sub Main()
Try
Using sr As StreamReader = File.OpenText("data.txt")
Console.WriteLine($"The first line of this file is {sr.ReadLine()}")
End Using
Catch e As FileNotFoundException
Console.WriteLine($"The file was not found: '{e}'")
Catch e As DirectoryNotFoundException
Console.WriteLine($"The directory was not found: '{e}'")
Catch e As IOException
Console.WriteLine($"The file could not be opened: '{e}'")
End Try
End Sub
End Class
Common Language Runtime (CLR) rileva le eccezioni non gestite dai catch
blocchi. Se un'eccezione viene intercettata da CLR, è possibile che si verifichi uno dei risultati seguenti a seconda della configurazione CLR:
- Viene visualizzata una finestra di dialogo Debug .
- Il programma arresta l'esecuzione e viene visualizzata una finestra di dialogo con informazioni sull'eccezione.
- Un errore viene inviato al flusso di output degli errori standard.
Annotazioni
La maggior parte del codice può generare un'eccezione e alcune eccezioni, ad OutOfMemoryExceptionesempio , possono essere generate da CLR stesso in qualsiasi momento. Anche se le applicazioni non sono necessarie per gestire queste eccezioni, tenere presente la possibilità di scrivere librerie da usare da altri utenti. Per suggerimenti su quando impostare il codice in un try
blocco, vedere Procedure consigliate per le eccezioni.