Comment : utiliser le bloc try/catch pour intercepter des exceptions

Placez les sections de code susceptibles de lever des exceptions dans un bloc try, puis placez le code qui gère les exceptions dans un bloc catch. Le bloc catch se compose d'une série d'instructions qui commencent par le mot clé catch, suivi d'un type d'exception et d'une action à exécuter.

RemarqueRemarque

Toute ligne de code ou presque peut générer une exception, notamment les exceptions qui sont levées par le Common Language Runtime lui-même, telles que OutOfMemoryException et StackOverflowException.La plupart des applications n'ont pas à traiter ces exceptions, mais vous devez garder à l'esprit cette possibilité lorsque vous écrivez des bibliothèques destinées à être utilisées par des tiers.Pour des suggestions indiquant quand vous devez placer du code dans un bloc try, consultez Meilleures pratiques pour la gestion des exceptions.

L'exemple de code suivant utilise un bloc try/catch pour intercepter une exception possible. La méthode Main contient un bloc try avec une instruction StreamReader qui ouvre un fichier de données appelé data.txt et écrit une chaîne à partir du fichier. Le bloc try est suivi d'un bloc catch qui intercepte toute exception issue du bloc try.

Exemple

Imports System
Imports System.IO

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())
        sr.Close()
        Catch e As Exception
            Console.WriteLine("An error occurred: '{0}'", e)
        End Try
    End Sub
End Class
using System;
using System.IO;

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());
        sr.Close();
        }
        catch (Exception e)
        {
            Console.WriteLine("An error occurred: '{0}'", e);
        }
    }
}
using namespace System;
using namespace System::IO;

public ref 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());
        sr->Close();
        }
        catch (Exception^ e)
        {
            Console::WriteLine("An error occurred: '{0}'", e);
        }
    }
};

int main()
{
    ProcessFile::Main();
}

Cet exemple illustre une instruction catch de base qui intercepte n'importe quelle exception. En règle générale, l'interception d'un type spécifique d'exception constitue une meilleure pratique de programmation que l'utilisation de l'instruction catch de base. Pour plus d'informations sur l'interception d'exceptions spécifiques, consultez Utilisation d'exceptions spécifiques dans un bloc catch.

Voir aussi

Tâches

Comment : utiliser des exceptions spécifiques dans un bloc catch

Comment : lever explicitement des exceptions

Comment : créer des exceptions définies par l'utilisateur

Comment : utiliser des blocs finally

Autres ressources

Notions de base de la gestion des exceptions