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