Fungsi SetErrorMode (errhandlingapi.h)
Mengontrol apakah sistem akan menangani jenis kesalahan serius yang ditentukan atau apakah proses akan menanganinya.
Sintaks
UINT SetErrorMode(
[in] UINT uMode
);
Parameter
[in] uMode
Mode kesalahan proses. Parameter ini bisa menjadi satu atau beberapa nilai berikut.
Nilai | Makna |
---|---|
|
Gunakan default sistem, yaitu menampilkan semua kotak dialog kesalahan. |
|
Sistem tidak menampilkan kotak pesan critical-error-handler. Sebaliknya, sistem mengirimkan kesalahan ke proses panggilan.
Praktik terbaik adalah semua aplikasi memanggil fungsi SetErrorMode di seluruh proses dengan parameter SEM_FAILCRITICALERRORS saat startup. Ini untuk mencegah dialog mode kesalahan menggantung aplikasi. |
|
Sistem secara otomatis memperbaiki kesalahan perataan memori dan membuatnya tidak terlihat oleh aplikasi. Ini dilakukan untuk proses panggilan dan proses turunan apa pun. Fitur ini hanya didukung oleh arsitektur prosesor tertentu. Untuk informasi lebih lanjut, lihat bagian Keterangan.
Setelah nilai ini diatur untuk proses, upaya berikutnya untuk menghapus nilai diabaikan. |
|
Sistem tidak menampilkan dialog Pelaporan Galat Windows. |
|
Fungsi OpenFile tidak menampilkan kotak pesan ketika gagal menemukan file. Sebaliknya, kesalahan dikembalikan ke pemanggil. Mode kesalahan ini mengambil alih bendera OF_PROMPT . |
Nilai kembali
Nilai yang dikembalikan adalah status sebelumnya dari bendera bit mode kesalahan.
Keterangan
Setiap proses memiliki mode kesalahan terkait yang menunjukkan kepada sistem bagaimana aplikasi akan merespons kesalahan serius. Proses anak mewarisi mode kesalahan dari proses induknya. Untuk mengambil mode kesalahan proses, gunakan fungsi GetErrorMode .
Karena mode kesalahan diatur untuk seluruh proses, Anda harus memastikan bahwa aplikasi multi-utas tidak mengatur bendera mode kesalahan yang berbeda. Melakukannya dapat menyebabkan penanganan kesalahan yang tidak konsisten.
Sistem tidak membuat kesalahan penyelarasan terlihat oleh aplikasi pada semua arsitektur prosesor. Oleh karena itu, menentukan SEM_NOALIGNMENTFAULTEXCEPT bukanlah kesalahan pada arsitektur tersebut, tetapi sistem bebas untuk mengabaikan permintaan secara diam-diam. Ini berarti bahwa urutan kode seperti berikut ini tidak selalu valid di komputer x86:
C++ |
---|
SetErrorMode(SEM_NOALIGNMENTFAULTEXCEPT); fuOldErrorMode = SetErrorMode(0); ASSERT(fuOldErrorMode == SEM_NOALIGNMENTFAULTEXCEPT); |
Visual Studio 2005: Saat mendeklarasikan penunjuk ke struktur yang mungkin tidak meratakan data, Anda dapat menggunakan kata kunci __unaligned untuk menunjukkan bahwa jenis harus dibaca satu byte pada satu waktu. Untuk informasi selengkapnya, lihat Perataan Data Windows.
Windows 7: Penelepon harus mendukung SetThreadErrorMode daripada SetErrorMode karena kurang mengganggu perilaku normal sistem.
Persyaratan
Persyaratan | Nilai |
---|---|
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk