Bagikan melalui


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:

  • Penanganan pengecualian C++

    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.

  • Pengecualian 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)