Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menangkap dan Mengendalikan Pengecualian Asli dalam C# Apabila Berinteraksi dengan Perpustakaan Tidak Terurus?

Bagaimanakah Saya Boleh Menangkap dan Mengendalikan Pengecualian Asli dalam C# Apabila Berinteraksi dengan Perpustakaan Tidak Terurus?

Barbara Streisand
Lepaskan: 2025-01-01 10:23:11
asal
286 orang telah melayarinya

How Can I Catch and Handle Native Exceptions in C# When Interacting with Unmanaged Libraries?

Mengendalikan Pengecualian Asli dalam Kod C#

Adakah Kemungkinan untuk Menangkap Pengecualian Tidak Terurus?

Apabila menggunakan perpustakaan tidak terurus, anda mungkin menghadapi pengecualian asli. Pengecualian ini berasal daripada kod asas dan berbeza daripada pengecualian yang dilemparkan oleh .NET Framework.

Menangkap Pengecualian Asli

Anda sememangnya boleh menangkap pengecualian asli dalam kod C# menggunakan kelas Win32Exception. Kelas ini menyediakan maklumat tambahan tentang pengecualian, termasuk kod ralat aslinya melalui sifat NativeErrorCode.

Mengendalikan Pengecualian Asli

Untuk mengendalikan pengecualian asli dengan berkesan, anda boleh menggunakan try...catch block seperti berikut:

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
    {
        // Attempt to open the file using a native application
        process.StartInfo.FileName = filePath;
        process.StartInfo.Verb = "Open";
        process.StartInfo.CreateNoWindow = true;
        process.Start();
    }
    catch (Win32Exception e)
    {
        // Handle specific native error codes
        switch (e.NativeErrorCode)
        {
            case ERROR_FILE_NOT_FOUND:
            case ERROR_ACCESS_DENIED:
            case ERROR_NO_APP_ASSOCIATED:
                MessageBox.Show(this, e.Message, "Error",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Exclamation);
                break;
        }
    }
}
Salin selepas log masuk

Contoh ini mengendalikan kod ralat asli biasa apabila cuba membuka fail dan memaparkan mesej ralat yang sesuai kepada pengguna.

Nota

Untuk pengendalian pengecualian menyeluruh, adalah penting untuk merujuk dokumentasi pustaka tidak terurus khusus yang anda gunakan untuk menentukan kemungkinan ralat asli yang mungkin berlaku.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menangkap dan Mengendalikan Pengecualian Asli dalam C# Apabila Berinteraksi dengan Perpustakaan Tidak Terurus?. 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