Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengendalikan Pelbagai Pengecualian Khusus dengan Cekap dalam C#?

Bagaimanakah Saya Boleh Mengendalikan Pelbagai Pengecualian Khusus dengan Cekap dalam C#?

Barbara Streisand
Lepaskan: 2025-01-20 23:32:11
asal
531 orang telah melayarinya

How Can I Efficiently Handle Multiple Specific Exceptions in C#?

Kendalikan berbilang pengecualian dengan mudah

Amalan konvensional dalam pengendalian pengecualian secara amnya mengesyorkan mengelak daripada menangkap ralat System.Exception generik. Sebaliknya, adalah disyorkan untuk hanya mengendalikan pengecualian khusus yang "diketahui" kepada aplikasi. Walau bagaimanapun, pendekatan ini kadangkala membawa kepada pertindihan kod.

Pertimbangkan senario berikut:

try
{
    WebId = new Guid(queryString["web"]);
}
catch (FormatException)
{
    WebId = Guid.Empty;
}
catch (OverflowException)
{
    WebId = Guid.Empty;
}
Salin selepas log masuk

Untuk mengelakkan pertindihan ini, penyelesaian yang lebih elegan ialah menangkap kedua-dua pengecualian dengan satu blok tangkapan:

catch (Exception ex)            
{                
    if (ex is FormatException || ex is OverflowException)
    {
        WebId = Guid.Empty;
    }
    else
        throw;
}
Salin selepas log masuk

Kod ini menggunakan pernyataan if untuk mengenal pasti pengecualian khusus yang perlu dikendalikan. Kelebihan pendekatan ini ialah berbilang pengecualian boleh ditangkap sekaligus sementara masih membenarkan pengecualian yang tidak dijangka menyebarkan ke atas timbunan. Ini amat berguna apabila objek diubah suai beberapa kali dan perlu ditetapkan semula jika salah satu operasi gagal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Pelbagai Pengecualian Khusus dengan Cekap dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan