Guide pratique pour lever explicitement des exceptions
Vous pouvez lever explicitement une exception à l’aide de l’instruction C# throw
ou Visual Basic Throw
. Vous pouvez aussi lever de nouveau une exception interceptée à l’aide de l’instruction throw
. En codage, il est conseillé d’ajouter des informations à une exception levée une deuxième fois pour fournir plus d’informations durant le débogage.
L’exemple de code suivant utilise un bloc try
/catch
pour intercepter une exception FileNotFoundException possible. À la suite du bloc try
, un bloc catch
intercepte l’exception FileNotFoundException et écrit un message dans la console si le fichier de données est introuvable. L’instruction suivante est throw
, qui lève une nouvelle exception FileNotFoundException et ajoute des informations de texte à l’exception.
var fs = default(FileStream);
try
{
// Open a text tile.
fs = new FileStream(@"C:\temp\data.txt", FileMode.Open);
var sr = new StreamReader(fs);
// Read a value from the file and output to the console.
string? line = sr.ReadLine();
Console.WriteLine(line);
}
catch (FileNotFoundException e)
{
Console.WriteLine($"[Data File Missing] {e}");
throw new FileNotFoundException(@"[data.txt not in c:\temp directory]", e);
}
finally
{
fs?.Close();
}
Option Strict On
Imports System.IO
Public Class ProcessFile
Public Shared Sub Main()
Dim fs As FileStream = Nothing
Try
' Opens a text file.
fs = New FileStream("c:\temp\data.txt", FileMode.Open)
Dim sr As New StreamReader(fs)
' A value is read from the file and output to the console.
Dim line As String = sr.ReadLine()
Console.WriteLine(line)
Catch e As FileNotFoundException
Console.WriteLine($"[Data File Missing] {e}")
Throw New FileNotFoundException("[data.txt not in c:\temp directory]", e)
Finally
If fs IsNot Nothing Then fs.Close()
End Try
End Sub
End Class
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour