Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
| Properti | Nilai |
|---|---|
| ID Aturan | CA2219 |
| Judul | Jangan memunculkan pengecualian dalam klausul pengecualian |
| Kategori | Penggunaan |
| Perbaikan bersifat merusak atau tidak merusak | Tidak melanggar, Melanggar |
| Diaktifkan secara default di .NET 10 | Sebagai saran |
| Bahasa yang berlaku | C# dan Visual Basic |
Penyebab
Pengecualian dilemparkan dari klausa, filter, atau klausa kesalahan finally.
Deskripsi aturan
Ketika pengecualian dimunculkan dalam klausul pengecualian, itu sangat meningkatkan kesulitan debugging.
Ketika pengecualian dilemparkan dalam finally atau klausul kesalahan, pengecualian baru menyembunyikan pengecualian aktif, jika ada. Ini membuat kesalahan asli sulit dideteksi dan di-debug.
Ketika pengecualian dilemparkan dalam klausa filter, runtime menangkap pengecualian tanpa pemberitahuan, dan menyebabkan evaluasi filter menjadi false. Tidak ada cara untuk membedakan antara filter yang mengevaluasi ke false dan pengecualian yang dilemparkan dari filter. Ini membuatnya sulit untuk mendeteksi dan men-debug kesalahan dalam logika filter.
Cara memperbaiki pelanggaran
Untuk memperbaiki pelanggaran aturan ini, jangan secara eksplisit melemparkan pengecualian dari finally, filter atau klausa kesalahan.
Example
try
{
// ...
}
finally
{
// This code violates the rule.
throw new Exception();
}
Kapan harus menekan peringatan
Jangan membungkam peringatan untuk aturan ini. Tidak ada skenario di mana pengecualian yang dimunculkan dalam klausul pengecualian memberikan manfaat bagi kode yang dijalankan.
Aturan terkait
CA1065: Jangan munculkan pengecualian di lokasi yang tidak terduga