Bagikan melalui


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
EXCEPTION_EXECUTE_HANDLER
0x1
Kembali dari UnhandledExceptionFilter dan jalankan handler pengecualian terkait. Ini biasanya menghasilkan penghentian proses.
EXCEPTION_CONTINUE_EXECUTION
0xffffffff
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 .
EXCEPTION_CONTINUE_SEARCH
0x0
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

Gambaran Umum Penanganan Pengecualian Terstruktur

UnhandledExceptionFilter

API Vertdll tersedia di enklave VBS