Fungsi SetUnhandledExceptionFilter (errhandlingapi.h)
Memungkinkan aplikasi menggantikan handler pengecualian tingkat atas dari setiap utas proses.
Setelah memanggil fungsi ini, jika pengecualian terjadi dalam proses yang tidak di-debug, dan pengecualian membuatnya ke filter pengecualian yang tidak tertangani, filter tersebut akan memanggil fungsi filter pengecualian yang ditentukan oleh parameter lpTopLevelExceptionFilter .
Sintaks
LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
[in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);
Parameter
[in] lpTopLevelExceptionFilter
Penunjuk ke fungsi filter pengecualian tingkat atas yang akan dipanggil setiap kali fungsi UnhandledExceptionFilter mendapatkan kontrol, dan prosesnya tidak sedang di-debug. Nilai NULL untuk parameter ini menentukan penanganan default dalam UnhandledExceptionFilter.
Fungsi filter memiliki sintaksis yang mirip dengan UnhandledExceptionFilter: Dibutuhkan satu parameter jenis LPEXCEPTION_POINTERS, memiliki konvensi panggilan WINAPI, dan mengembalikan nilai jenis LONG. Fungsi filter harus mengembalikan salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Kembali dari UnhandledExceptionFilter dan jalankan handler pengecualian terkait. Ini biasanya menghasilkan penghentian proses. |
|
Kembali dari UnhandledExceptionFilter dan lanjutkan eksekusi dari titik pengecualian. Perhatikan bahwa fungsi filter bebas untuk memodifikasi status kelanjutan dengan memodifikasi informasi pengecualian yang disediakan melalui parameter LPEXCEPTION_POINTERS . |
|
Lanjutkan dengan eksekusi normal UnhandledExceptionFilter. Itu berarti mematuhi bendera SetErrorMode , atau memanggil kotak pesan pop-up Kesalahan Aplikasi. |
Nilai kembali
Fungsi SetUnhandledExceptionFilter mengembalikan alamat filter pengecualian sebelumnya yang ditetapkan dengan fungsi . Nilai pengembalian NULL berarti tidak ada handler pengecualian tingkat atas saat ini.
Keterangan
Mengeluarkan SetUnhandledExceptionFilter menggantikan filter pengecualian tingkat atas yang ada untuk semua utas yang ada dan di masa mendatang dalam proses panggilan.
Handler pengecualian yang ditentukan oleh lpTopLevelExceptionFilter dijalankan dalam konteks utas yang menyebabkan kesalahan. Ini dapat memengaruhi kemampuan handler pengecualian untuk pulih dari pengecualian tertentu, seperti tumpukan yang tidak valid.
Persyaratan
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | errhandlingapi.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |
Lihat juga
Fungsi Penanganan Pengecualian Terstruktur