Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Placez les instructions de code qui peuvent déclencher ou lever une exception dans un try
bloc et placer des instructions utilisées pour gérer l’exception ou les exceptions dans un ou plusieurs catch
blocs sous le try
bloc. Chaque catch
bloc inclut le type d’exception et peut contenir des instructions supplémentaires nécessaires pour gérer ce type d’exception.
Dans l’exemple suivant, un StreamReader fichier appelé data.txt s’ouvre et récupère une ligne à partir du fichier. Étant donné que le code peut lever l’une des trois exceptions, il est placé dans un try
bloc. Trois catch
blocs interceptent les exceptions et les gèrent en affichant les résultats dans la 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
Le Common Language Runtime (CLR) intercepte les exceptions non gérées par les blocs catch
. Si une exception est interceptée par le CLR, l’un des résultats suivants peut se produire en fonction de votre configuration CLR :
- Une boîte de dialogue Débogage s’affiche.
- Le programme arrête l’exécution et une boîte de dialogue avec des informations d’exception s’affiche.
- Une erreur s’affiche dans le flux de sortie d’erreur standard.
Remarque
La plupart du code peut lever une exception, et certaines exceptions, comme OutOfMemoryExceptioncelles-ci, peuvent être levées par le CLR lui-même à tout moment. Bien que les applications ne soient pas tenues de traiter ces exceptions, sachez qu'il est possible qu'elles se produisent lorsque vous écrivez des bibliothèques destinées à être utilisées par d'autres. Pour obtenir des suggestions sur le moment où définir du code dans un try
bloc, consultez Les meilleures pratiques pour les exceptions.