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 |
| Golongan | Penggunaan |
| Perbaikan bersifat disruptif atau non-disruptif | Tidak melanggar, Melanggar |
| Diaktifkan secara default di .NET 10 | Sebagai saran |
Penyebab
Pengecualian dilemparkan dari finallyklausa , filter, atau kesalahan.
Deskripsi aturan
Ketika pengecualian dimunculkan dalam klausul pengecualian, itu sangat meningkatkan kesulitan debugging.
Ketika pengecualian dimunculkan dalam finally klausul kesalahan atau , pengecualian baru menyembunyikan pengecualian aktif, jika ada. Ini membuat kesalahan asli sulit dideteksi dan di-debug.
Ketika pengecualian dinaikkan dalam klausa filter, runtime secara diam-diam menangkap pengecualian, dan menyebabkan filter dievaluasi ke 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 menaikkan pengecualian dari finallyklausul , filter, atau kesalahan.
Example
try
{
// ...
}
finally
{
// This code violates the rule.
throw new Exception();
}
Kapan harus menekan peringatan
Jangan menekan 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