Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Anda Boleh Menyesuaikan Pengendalian Pengecualian dalam C?
Pengendalian pengecualian ialah aspek penting dalam pengurusan ralat dalam pengaturcaraan. Artikel ini menyelidiki penyesuaian lontaran pengecualian, cuba penyataan dan tangkap blok untuk mengendalikan senario tertentu.
Melempar Pengecualian Tersuai
Untuk melontar pengecualian dengan mesej tersuai , gunakan pernyataan lontaran dan nyatakan objek pengecualian. Sebagai contoh, katakan kita mempunyai fungsi compare(int a, int b) yang sepatutnya menimbulkan pengecualian apabila salah satu integer adalah negatif. Takrifan yang diubah suai akan melibatkan:
#include <stdexcept> int compare(int a, int b) { if (a < 0 || b < 0) { throw std::invalid_argument("received negative value"); } }
Pustaka Standard C menyediakan pelbagai objek pengecualian pra-bina untuk kemudahan. Ingatlah untuk mengikuti amalan terbaik membaling mengikut nilai dan menangkap melalui rujukan.
Menangkap Pengecualian Tersuai
Selepas menentukan pengecualian, langkah seterusnya ialah mengendalikannya menggunakan try -menangkap blok. Kod di bawah menunjukkan menangkap dan mengendalikan pengecualian std::invalid_argument yang dilemparkan dengan membandingkan:
try { compare(-1, 3); } catch (const std::invalid_argument& e) { // Perform actions based on the exception }
Blok tangkapan tambahan boleh dirangkai daisy untuk membezakan antara pelbagai jenis pengecualian. Sebagai alternatif, tangkap(...) menangkap sebarang jenis pengecualian secara sembarangan.
Pengendalian Pengecualian Lanjutan
Melempar semula pengecualian dengan lontaran; membenarkan pengecualian untuk disebarkan lebih jauh ke atas timbunan panggilan. Ini boleh berguna apabila fungsi ingin menunjukkan bahawa ia tidak boleh mengendalikan pengecualian secara dalaman dan lebih suka mewakilkannya kepada fungsi peringkat lebih tinggi.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Menyesuaikan Pengendalian Pengecualian dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!