Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Anda Melempar dan Menangkap Pengecualian dalam C untuk Mengendalikan Input Tidak Sah?
Pengendalian pengecualian ialah teknik penting dalam C yang membolehkan anda mengurus ralat dan situasi luar biasa dengan berkesan. Memahami cara melontar, mencuba dan menangkap pengecualian adalah penting untuk menulis kod yang mantap dan boleh dipercayai.
Satu senario biasa di mana pengecualian berguna ialah apabila anda ingin mengendalikan input tidak sah atau keadaan yang tidak sepatutnya berlaku semasa pelaksanaan program biasa . Sebagai contoh, mari kita pertimbangkan fungsi compare(int a, int b) yang membandingkan dua integer.
Untuk mengendalikan kes di mana sama ada a atau b adalah negatif, kita boleh mengubah suai takrifan fungsi bandingkan seperti berikut:
#include <stdexcept> int compare(int a, int b) { if (a < 0 || b < 0) { throw std::invalid_argument("received negative value"); } }
Dalam contoh ini, kami menggunakan pernyataan lontaran untuk menimbulkan pengecualian jika salah satu parameter adalah negatif. std::invalid_argument ialah objek pengecualian terbina dalam yang sepadan dengan argumen tidak sah yang dihantar ke fungsi.
Untuk mengendalikan pengecualian yang dilemparkan oleh fungsi bandingkan, kita boleh menggunakan blok cuba-tangkap:
try { compare(-1, 3); } catch (const std::invalid_argument& e) { // Handle the exception here... }
Dalam blok cuba, kami cuba melaksanakan fungsi bandingkan dengan input yang mungkin tidak sah. Jika pengecualian dilemparkan, blok tangkapan menangkapnya, memberikan kita rujukan kepada objek pengecualian e. Kita boleh menggunakan objek ini untuk menentukan punca pengecualian dan mengambil tindakan yang sewajarnya.
Selain itu, C menyediakan fleksibiliti dalam pengendalian pengecualian. Anda boleh membuang mengikut nilai dan menangkap melalui rujukan, seperti yang ditunjukkan dalam contoh di atas. Anda juga boleh melontar semula pengecualian atau menangkap pengecualian tanpa mengira jenis menggunakan tangkapan(...). Ciri ini memperkasakan anda untuk mengendalikan senario pengecualian dengan cara yang disesuaikan dan cekap.
Atas ialah kandungan terperinci Bagaimanakah Anda Melempar dan Menangkap Pengecualian dalam C untuk Mengendalikan Input Tidak Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!