Bagikan melalui


Fungsi RaiseException (errhandlingapi.h)

Memunculkan pengecualian dalam utas panggilan.

Sintaks

void RaiseException(
  [in] DWORD           dwExceptionCode,
  [in] DWORD           dwExceptionFlags,
  [in] DWORD           nNumberOfArguments,
  [in] const ULONG_PTR *lpArguments
);

Parameter

[in] dwExceptionCode

Kode pengecualian yang ditentukan aplikasi dari pengecualian yang dimunculkan. Ekspresi filter dan blok penanganan pengecualian dari handler pengecualian dapat menggunakan fungsi GetExceptionCode untuk mengambil nilai ini.

Perhatikan bahwa sistem akan menghapus bit 28 dari dwExceptionCode sebelum menampilkan pesan Bit ini adalah bit pengecualian khusus, yang digunakan oleh sistem untuk tujuannya sendiri.

[in] dwExceptionFlags

Bendera pengecualian. Ini dapat berupa nol untuk menunjukkan pengecualian yang dapat dilanjutkan, atau EXCEPTION_NONCONTINUABLE untuk menunjukkan pengecualian yang tidak dapat dilanjutkan. Setiap upaya untuk melanjutkan eksekusi setelah pengecualian yang tidak dapat dilanjutkan menyebabkan pengecualian EXCEPTION_NONCONTINUABLE_EXCEPTION.

[in] nNumberOfArguments

Jumlah argumen dalam array lpArguments . Nilai ini tidak boleh melebihi EXCEPTION_MAXIMUM_PARAMETERS. Parameter ini diabaikan jika lpArgumentsNULL.

[in] lpArguments

Array argumen. Parameter ini bisa NULL. Argumen ini dapat berisi data yang ditentukan aplikasi apa pun yang perlu diteruskan ke ekspresi filter penangan pengecualian.

Menampilkan nilai

Fungsi ini tidak mengembalikan nilai.

Keterangan

Fungsi RaiseException memungkinkan proses untuk menggunakan penanganan pengecualian terstruktur untuk menangani pengecualian privat yang dihasilkan perangkat lunak, yang ditentukan aplikasi.

Menaikkan pengecualian menyebabkan dispatcher pengecualian melalui pencarian berikut untuk penangan pengecualian:

  1. Sistem pertama kali mencoba memberi tahu debugger proses, jika ada.
  2. Jika proses tidak di-debug, atau jika debugger terkait tidak menangani pengecualian, sistem mencoba menemukan penanganan pengecualian berbasis bingkai dengan mencari bingkai tumpukan utas tempat pengecualian terjadi. Sistem mencari bingkai tumpukan saat ini terlebih dahulu, lalu melanjutkan mundur melalui bingkai tumpukan sebelumnya.
  3. Jika tidak ada handler berbasis bingkai yang dapat ditemukan, atau tidak ada handler berbasis bingkai yang menangani pengecualian, sistem melakukan upaya kedua untuk memberi tahu debugger proses.
  4. Jika proses tidak di-debug, atau jika debugger terkait tidak menangani pengecualian, sistem menyediakan penanganan default berdasarkan jenis pengecualian. Untuk sebagian besar pengecualian, tindakan defaultnya adalah memanggil fungsi ExitProcess .

Nilai yang ditentukan dalam parameter dwExceptionCode, dwExceptionFlags, nNumberOfArguments, dan lpArguments dapat diambil dalam ekspresi filter handler pengecualian berbasis bingkai dengan memanggil fungsi GetExceptionInformation . Debugger dapat mengambil nilai-nilai ini dengan memanggil fungsi WaitForDebugEvent .

Contoh

Misalnya, lihat Menggunakan Handler Pengecualian.

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

ExitProcess

GetExceptionCode

GetExceptionInformation

Fungsi Penanganan Pengecualian Terstruktur

Gambaran Umum Penanganan Pengecualian Terstruktur

WaitForDebugEvent

Api Vertdll tersedia di enklave VBS