Menggunakan pengatur pengecualian yang difilter pengguna
Pengatur pengecualian yang difilter pengguna mengambil dan menangani pengecualian berdasarkan persyaratan yang Anda tentukan untuk pengecualian. Pengatur ini menggunakan pernyataan catch
dengan kata kunci when
(Catch
dan When
dalam Visual Basic).
Teknik ini berguna ketika objek pengecualian tertentu sesuai dengan beberapa kesalahan. Dalam hal ini, objek biasanya memiliki properti yang berisi kode kesalahan spesifik yang terkait dengan kesalahan. Anda dapat menggunakan properti kode kesalahan dalam ekspresi untuk memilih hanya kesalahan tertentu yang ingin Anda tangani dalam klausa catch
tersebut.
Contoh berikut mengilustrasikan pernyataan catch
/when
.
try
{
//Try statements.
}
catch (Exception ex) when (ex.Message.Contains("404"))
{
//Catch statements.
}
Try
'Try statements.
Catch When Err = VBErr_ClassLoadException
'Catch statements.
End Try
Ekspresi klausa yang difilter pengguna tidak dibatasi dengan cara apa pun. Jika pengecualian terjadi selama eksekusi ekspresi yang difilter pengguna, pengecualian tersebut akan dibuang dan ekspresi filter dianggap telah dievaluasi menjadi salah. Dalam hal ini, runtime bahasa umum melanjutkan pencarian pengatur untuk pengecualian saat ini.
Menggabungkan pengecualian tertentu dan klausa yang difilter pengguna
Pernyataan catch
dapat berisi pengecualian khusus dan klausa yang difilter pengguna. Runtime menguji pengecualian tertentu terlebih dahulu. Jika pengecualian tertentu berhasil, runtime akan mengeksekusi filter pengguna. Filter generik dapat berisi referensi ke variabel yang dideklarasikan dalam filter kelas. Perhatikan bahwa urutan dua klausa filter tidak dapat dibalik.
Contoh berikut menunjukkan pengecualian tertentu dalam pernyataan pengambilan serta klausa yang difilter pengguna menggunakan kata kunci saat.
try
{
//Try statements.
}
catch (System.Net.Http.HttpRequestException ex) when (ex.Message.Contains("404"))
{
//Catch statements.
}
Try
'Try statements.
Catch cle As ClassLoadException When cle.IsRecoverable()
'Catch statements.
End Try
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk