Memahami Pengendalian Pengecualian C: Panduan Komprehensif untuk Melontar Pengecualian
Pengendalian pengecualian ialah mekanisme penting dalam pengaturcaraan yang membolehkan pembangun menangani ralat yang tidak dijangka dan mengekalkan integriti program. Dalam C , pengecualian diprogramkan menggunakan pernyataan balingan dan tangkap.
Menyesuaikan Pengendalian Pengecualian
Pertimbangkan contoh berikut:
int compare(int a, int b) { // ... }
Andaikan kita mahu membuang pengecualian apabila sama ada a atau b adalah negatif. Untuk mencapai matlamat ini, kita boleh menggunakan pengecualian std::invalid_argument daripada Perpustakaan Standard.
Pelaksanaan Melontar Pengecualian
#include <stdexcept> int compare(int a, int b) { if (a < 0 || b < 0) { throw std::invalid_argument("received negative value"); } }
Dalam fungsi bandingkan, kami buang pengecualian std::invalid_argument dengan mesej ralat tersuai apabila a atau b adalah negatif.
Menangkap Pengecualian
Pengecualian boleh ditangkap menggunakan pernyataan cuba-tangkap:
try { compare(-1, 3); } catch (const std::invalid_argument& e) { // Handle the exception }
Di dalam blok tangkapan, kami boleh melakukan tindakan tertentu atau log mesej ralat untuk analisis lanjut.
Berbilang Blok Tangkapan dan Pengecualian Lontar Semula
Kami boleh mempunyai berbilang blok tangkapan untuk mengendalikan jenis pengecualian yang berbeza secara berasingan. Selain itu, kita boleh membuang semula pengecualian untuk membiarkan fungsi peringkat lebih tinggi menangani ralat:
try { // ... } catch (const std::invalid_argument& e) { // Handle the exception throw; // Re-throw the exception }
Menangkap Semua Pengecualian
Untuk menangkap pengecualian dari sebarang jenis, kita boleh menggunakan pernyataan catch(...) sebagai catch-all:
try { // ... } catch (...) { // Handle all exceptions }
Dengan memahami dan menggunakan pengecualian secara berkesan pengendalian dalam C , pembangun boleh meningkatkan keteguhan kod mereka dan memperbaik mekanisme pengendalian ralat.
Atas ialah kandungan terperinci Bagaimana Pengendalian C Exception Berfungsi: Panduan Lengkap untuk `melempar` dan `menangkap`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!