Partager via


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

Mise à jour : novembre 2007

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.

Remarque :

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

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);
        }
    }
}

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