Bagaimanakah Pengendalian Pengecualian Berfungsi dalam C ?

Susan Sarandon
Lepaskan: 2024-11-21 16:15:15
asal
494 orang telah melayarinya

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");
    }
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

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