Adakah terdapat Mekanisme Pengecualian Catch-All dalam C Seperti Java's Throwable?

Susan Sarandon
Lepaskan: 2024-10-27 20:24:30
asal
467 orang telah melayarinya

 Is there a Catch-All Exception Mechanism in C   Like Java's Throwable?

Cara Menangkap Semua Pengecualian dalam C

Apabila bekerja dengan Java, blok cuba-tangkap boleh digunakan untuk menangkap semua pengecualian menggunakan tangkapan (T Throwable) sintaks. Walau bagaimanapun, adakah terdapat mekanisme yang setara dalam C ?

Untuk menangani permintaan ini bagi mekanisme penangkapan pengecualian generik, terutamanya berguna untuk menyahpepijat kod JNI yang memanggil fungsi Windows, berikut ialah cara ia boleh dicapai dalam C :

<code class="cpp">try {
    // ...
} catch (...) {
    // ...
}</code>
Salin selepas log masuk

Kod ini akan menangkap semua pengecualian C dalam blok percubaan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa menangkap semua pengecualian biasanya dianggap sebagai amalan reka bentuk yang buruk. Jika boleh, adalah lebih baik untuk menggunakan klausa tangkapan yang lebih khusus untuk pengecualian yang dijangka berlaku.

Sebagai contoh, jika anda tidak dapat menggunakan mekanisme std::current_exception C 11 kerana kekangan kod warisan, anda boleh mempertimbangkan pendekatan yang lebih berbutir seperti ini:

<code class="cpp">try {
    // ...
} catch (const std::exception& ex) {
    // ...
} catch (const std::string& ex) {
    // ...
} catch (...) {
    // ...
}</code>
Salin selepas log masuk

Ini akan menangkap jenis pengecualian tertentu (std::exception dan std::string dalam kes ini) sambil menangkap sebarang pengecualian yang tidak dijangka dengan klausa catch-all akhir . Ingat, adalah penting untuk hanya menggunakan klausa catch-all sebagai pilihan terakhir untuk menangkap ralat yang tidak dijangka yang anda belum kendalikan secara eksplisit.

Atas ialah kandungan terperinci Adakah terdapat Mekanisme Pengecualian Catch-All dalam C Seperti Java's Throwable?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!