Cara melempar pengecualian secara eksplisit

Anda dapat secara eksplisit melemparkan pengecualian menggunakan pernyataan throw C# atau Throw Visual Basic. Anda juga dapat melemparkan lagi pengecualian yang ditangkap menggunakan pernyataan throw. Praktik pengkodan yang baik untuk menambahkan informasi ke pengecualian yang ditumbuhi kembali untuk memberikan informasi lebih lanjut saat penelusuran kesalahan.

Contoh kode berikut menggunakan blok try/catch untuk menangkap kemungkinan FileNotFoundException. Blok try diikuti blok catch yang menangkap FileNotFoundException dan menulis pesan ke konsol jika file data tidak ditemukan. Pernyataan berikutnya adalah pernyataan throw yang melemparkan FileNotFoundException baru dan menambahkan informasi teks ke pengecualian.

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

Lihat juga