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

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

Mary-Kate Olsen
Lepaskan: 2025-01-20 23:26:15
asal
169 orang telah melayarinya

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

Amalan terbaik untuk menangkap berbilang pengecualian pada masa yang sama

Dalam C#, menangkap semua pengecualian secara langsung menggunakan System.Exception biasanya tidak disyorkan. Amalan terbaik adalah dengan hanya menangkap pengecualian khusus yang diketahui wujud. Walau bagaimanapun, pendekatan ini boleh membawa kepada kod berlebihan apabila mengendalikan berbilang pengecualian yang dijangkakan.

Contohnya:

<code class="language-csharp">try
{
    WebId = new Guid(queryString["web"]);
}
catch (FormatException)
{
    WebId = Guid.Empty;
}
catch (OverflowException)
{
    WebId = Guid.Empty;
}</code>
Salin selepas log masuk

Kod di atas mempunyai struktur berulang. Kaedah yang lebih ringkas ialah menggunakan System.Exception untuk menangkap semua pengecualian, dan kemudian gunakan pernyataan switch untuk membezakan jenis pengecualian:

<code class="language-csharp">catch (Exception ex)
{
    switch (ex)
    {
        case FormatException:
        case OverflowException:
            WebId = Guid.Empty;
            break;
        default:
            throw; // 将未处理的异常重新抛出
    }
}</code>
Salin selepas log masuk

Pendekatan ini mengendalikan berbilang pengecualian yang diketahui dengan cekap sambil mengekalkan keupayaan untuk membuang pengecualian yang tidak dijangka.

Sila ingat bahawa menangkap System.Exception sebagai amalan umum masih tidak disyorkan. Hanya tangkap dan kendalikan pengecualian yang dijangkakan dengan sewajarnya.

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

sumber:php.cn
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