Uitzonderingen expliciet genereren
U kunt expliciet een uitzondering genereren met behulp van de C# throw
of de Visual Basic-instructie Throw
. U kunt ook een onderschepte uitzondering opnieuw genereren met behulp van de throw
instructie. Het is een goede gewoonte om informatie toe te voegen aan een uitzondering die opnieuw wordt gebruikt om meer informatie te geven bij het opsporen van fouten.
In het volgende codevoorbeeld wordt een try
/catch
blok gebruikt om een mogelijk FileNotFoundExceptionte vangen. Het volgen van het try
blok is een catch
blok dat het FileNotFoundException betrapt en een bericht naar de console schrijft als het gegevensbestand niet wordt gevonden. De volgende instructie is de throw
instructie waarmee een nieuwe FileNotFoundException wordt gegenereerd en tekstinformatie wordt toegevoegd aan de uitzondering.
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