Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menangkap dan Mengendalikan Pengecualian Asli dalam C#?

Bagaimanakah Saya Boleh Menangkap dan Mengendalikan Pengecualian Asli dalam C#?

Mary-Kate Olsen
Lepaskan: 2025-01-03 18:42:41
asal
871 orang telah melayarinya

How Can I Catch and Handle Native Exceptions in C#?

Menangkap Pengecualian Asli dalam Kod C#

Dalam pengaturcaraan C#, adalah mungkin untuk menangkap pengecualian yang berasal daripada perpustakaan yang tidak diurus, sering disebut "native pengecualian." Pengecualian ini berlaku apabila kod asli yang mendasari menghadapi ralat yang tidak boleh dikendalikan dalam kod terurus.

Cara Menangkap Pengecualian Asli

Untuk menangkap pengecualian asli, anda boleh gunakan kelas Win32Exception. Kelas ini mendedahkan sifat NativeErrorCode yang mengandungi kod ralat yang dijana oleh pustaka tidak terurus. Anda boleh menggunakan sifat ini untuk mengendalikan pengecualian dengan sewajarnya.

Contoh Penggunaan

Contoh berikut menunjukkan cara menangkap pengecualian asli dan mengendalikannya menggunakan kelas Win32Exception:

const int ERROR_FILE_NOT_FOUND = 2;
const int ERROR_ACCESS_DENIED = 5;
const int ERROR_NO_APP_ASSOCIATED = 1155;

void OpenFile(string filePath)
{
    Process process = new Process();

    try
    {
        // Calls native application registered for the file type
        // This may throw a native exception
        process.StartInfo.FileName = filePath;
        process.StartInfo.Verb = "Open";
        process.StartInfo.CreateNoWindow = true;
        process.Start();
    }
    catch (Win32Exception e)
    {
        if (e.NativeErrorCode == ERROR_FILE_NOT_FOUND || 
            e.NativeErrorCode == ERROR_ACCESS_DENIED ||
            e.NativeErrorCode == ERROR_NO_APP_ASSOCIATED)
        {
            MessageBox.Show(this, e.Message, "Error", 
                    MessageBoxButtons.OK, 
                    MessageBoxIcon.Exclamation);
        }
    }
}
Salin selepas log masuk

Dalam contoh ini, kaedah OpenFile() cuba membuka fail menggunakan aplikasi asli. Jika fail tidak ditemui, akses dinafikan, atau tiada aplikasi yang dikaitkan dengan jenis fail, pengecualian asli akan dibuang. Blok tangkapan menggunakan kelas Win32Exception untuk memintas pengecualian dan mengendalikannya dengan sewajarnya dengan memaparkan kotak mesej dengan butiran ralat.

Nota: Anda tidak perlu membuat sebarang pengubahsuaian khas pada cuba...tangkap blok untuk menangkap pengecualian asli. Mekanisme percubaan standard...tangkap mencukupi untuk mengendalikan kedua-dua pengecualian terurus dan asli.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menangkap dan Mengendalikan Pengecualian Asli 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