Penanganan pengecualian di MSVC
Pengecualian adalah kondisi kesalahan, mungkin di luar kontrol program, yang mencegah program melanjutkan sepanjang jalur eksekusi regulernya. Operasi tertentu, termasuk pembuatan objek, input/output file, dan panggilan fungsi yang dilakukan dari modul lain, adalah semua sumber pengecualian potensial, bahkan ketika program Anda berjalan dengan benar. Kode yang kuat mengantisipasi dan menangani pengecualian. Untuk mendeteksi kesalahan logika, gunakan pernyataan daripada pengecualian (lihat Menggunakan Pernyataan).
Jenis pengecualian
Pengkompilasi Microsoft C++ (MSVC) mendukung tiga jenis penanganan pengecualian:
-
Untuk sebagian besar program C++, Anda harus menggunakan penanganan pengecualian C++. Ini adalah jenis aman, dan memastikan bahwa destruktor objek dipanggil selama pelekatan tumpukan.
Penanganan pengecualian terstruktur
Windows menyediakan mekanisme pengecualiannya sendiri, yang disebut penanganan pengecualian terstruktur (SEH). Tidak disarankan untuk pemrograman C++ atau MFC. Gunakan SEH hanya dalam program C non-MFC.
-
Sejak versi 3.0, MFC telah menggunakan pengecualian C++. Ini masih mendukung makro penanganan pengecualian yang lebih lama, yang mirip dengan pengecualian C++ dalam bentuk. Untuk saran tentang mencampur makro MFC dan pengecualian C++, lihat Pengecualian: Menggunakan Makro MFC dan Pengecualian C++.
Gunakan opsi pengkompilasi /EH untuk menentukan model penanganan pengecualian yang akan digunakan dalam proyek C++. Penanganan pengecualian C++ standar (/EHsc) adalah default dalam proyek C++ baru di Visual Studio.
Kami tidak menyarankan Anda mencampur mekanisme penanganan pengecualian. Misalnya, jangan gunakan pengecualian C++ dengan penanganan pengecualian terstruktur. Menggunakan penanganan pengecualian C++ secara eksklusif membuat kode Anda lebih portabel, dan memungkinkan Anda untuk menangani pengecualian dari jenis apa pun. Untuk informasi selengkapnya tentang kelemahan penanganan pengecualian terstruktur, lihat Penanganan Pengecualian Terstruktur.
Di bagian ini
Baca juga
Referensi
Bahasa C++ x64
penanganan pengecualian Penanganan Pengecualian (C++/CLI dan C++/CX)
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