Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Pengendalian Pengecualian Berfungsi dalam C ?

Bagaimanakah Pengendalian Pengecualian Berfungsi dalam C ?

Susan Sarandon
Susan Sarandonasal
2024-11-21 16:15:15499semak imbas

How Does Exception Handling Work in C  ?

Pengendalian Pengecualian dalam C : Penjelasan Komprehensif

Pengendalian pengecualian ialah mekanisme penting dalam C yang membolehkan pengaturcara mengurus ralat masa jalan dan situasi yang tidak dijangka dengan berkesan. Memahami cara melontar, mencuba dan menangkap pengecualian adalah penting untuk menulis kod yang mantap dan tersusun dengan baik.

Melempar Pengecualian

Untuk melontar pengecualian, gunakan kata kunci lontaran diikuti dengan objek pengecualian. Sebagai contoh, untuk membuang pengecualian dengan mesej "menerima nilai negatif" apabila salah satu argumen a atau b dalam fungsi bandingkan adalah negatif, kod berikut boleh digunakan:

#include <stdexcept>

int compare(int a, int b) {
    if (a < 0 || b < 0) {
        throw std::invalid_argument("received negative value");
    }
}

Perpustakaan Standard menyediakan julat objek pengecualian terbina dalam, termasuk std::invalid_argument, yang boleh digunakan dalam senario sedemikian.

Menangkap Pengecualian

Untuk mengendalikan pengecualian, gunakan struktur blok cuba-tangkap. Blok cuba mengandungi kod yang mungkin membuang pengecualian. Blok tangkapan mengikut blok cuba dan nyatakan jenis pengecualian yang harus dikendalikan. Contohnya, kod berikut cuba memanggil fungsi bandingkan dan menangkap sebarang pengecualian std::invalid_argument yang mungkin dilemparkan:

try {
    compare(-1, 3);
}
catch (const std::invalid_argument& e) {
    // Handle the exception and take appropriate action
}

Pengecualian Lempar Semula

Jika perlu, pengecualian boleh dibaling semula dalam blok tangkapan menggunakan kata kunci lontaran. Ini membolehkan pengecualian dikendalikan oleh kod pada tahap yang lebih tinggi dalam timbunan panggilan.

Menangkap Pengecualian Tanpa mengira Jenis

Untuk menangkap pengecualian tanpa mengira jenisnya, gunakan elipsis (...) dalam blok tangkapan. Ini berguna apabila jenis pengecualian yang tepat tidak diketahui atau apabila pengendalian ralat umum dikehendaki.

try {
    // Code that may throw exceptions
}
catch (...) {
    // Handle all exceptions
}

Memahami pengendalian pengecualian adalah penting untuk menulis kod yang teguh dan tahan ralat. Dengan mengikut prinsip yang digariskan di atas, pengaturcara boleh mengurus ralat masa jalan dengan berkesan dan meningkatkan kualiti keseluruhan aplikasi C mereka.

Atas ialah kandungan terperinci Bagaimanakah Pengendalian Pengecualian Berfungsi dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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