Pengendalian Pengecualian dalam C
Laksanakan strategi pengendalian ralat yang kukuh tanpa pengendalian pengecualian terbina dalam.
Pengendalian Pengecualian dalam C ialah pelajaran C Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 3. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C Academy merangkumi sejumlah 3 pelajaran.
Pengenalan kepada Pengendalian Pengecualian
Pengendalian Pengecualian dalam C
Tidak seperti bahasa seperti C++ dan Java, C tidak mempunyai pengendalian pengecualian terbina dalam.
Dalam pelajaran ini, anda akan mempelajari:
- Cara mengendalikan ralat menggunakan nilai pulangan.
- Cara menggunakan
setjmpdanlongjmpuntuk pengendalian pengecualian. - Cara menggunakan
errnountuk pengendalian ralat sistem.

Mengendalikan Ralat dengan Nilai Pulangan
Cara paling mudah untuk mengendalikan ralat dalam C adalah dengan menggunakan nilai pulangan.
Contoh:
int divide(int a, int b) {
if (b == 0) return -1; // Error code
return a / b;
}
Pemanggil menyemak nilai pulangan untuk mengesan ralat.
Contoh: Pengendalian Ralat dengan Nilai Pulangan
Atur cara ini menyemak pembahagian dengan sifar menggunakan nilai pulangan.
#include <stdio.h>
int divide(int a, int b) {
if (b == 0) {
printf("Error: Division by zero!\n");
return -1;
}
return a / b;
}
int main() {
int result = divide(10, 0);
if (result != -1) {
printf("Result: %d\n", result);
}
return 0;
}Menggunakan setjmp dan longjmp untuk Pengendalian Ralat
Fungsi setjmp dan longjmp membolehkan lompatan bukan setempat yang mensimulasikan pengendalian pengecualian.
Langkah:
- Gunakan
setjmp()untuk menandakan titik pemulihan. - Gunakan
longjmp()untuk melompat kembali apabila ralat berlaku.
Contoh: Menggunakan setjmp dan longjmp
Atur cara ini menggunakan setjmp dan longjmp untuk pengendalian ralat.
#include <stdio.h>
#include <setjmp.h>
jmp_buf buffer;
void errorHandler() {
printf("Error occurred! Jumping back to safe state.\n");
longjmp(buffer, 1);
}
int main() {
if (setjmp(buffer) == 0) {
printf("Executing main program...\n");
errorHandler();
} else {
printf("Recovered from error.\n");
}
return 0;
}Menggunakan errno untuk Ralat Sistem
Pemboleh ubah errno menyimpan kod ralat daripada panggilan sistem.
Contoh:
#include
Fungsi seperti fopen() menetapkan errno apabila ralat berlaku.
Contoh: Menggunakan errno untuk Pengendalian Fail
Atur cara ini menyemak errno apabila membuka fail yang tidak wujud.
#include <stdio.h>
#include <errno.h>
int main() {
FILE *file = fopen("nonexistent.txt", "r");
if (!file) {
perror("Error opening file");
}
return 0;
}Amalan Terbaik untuk Pengendalian Ralat
Untuk menguruskan ralat dengan berkesan:
- Semak nilai pulangan fungsi.
- Gunakan
errnountuk ralat sistem. - Gunakan
setjmpdanlongjmphanya apabila perlu.
Ringkasan
Dalam pelajaran ini, anda telah mempelajari:
- Cara mengendalikan ralat menggunakan nilai pulangan.
- Cara
setjmpdanlongjmpmensimulasikan pengendalian pengecualian. - Cara menggunakan
errnountuk mengesan ralat sistem.
Ini mengakhiri bahagian Penyahpepijatan dan Pengendalian Ralat dalam C!

Pelajari C dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 39
- Pelajaran
- 144
Soalan Lazim
Adakah pelajaran “Pengendalian Pengecualian dalam C” percuma?
Ya — teks penuh “Pengendalian Pengecualian dalam C” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus C Academy, tingkat taraf kepada CoddyKit PRO. Kursus C Academy merangkumi sejumlah 3 pelajaran.
Apakah yang akan saya pelajari dalam “Pengendalian Pengecualian dalam C”?
Laksanakan strategi pengendalian ralat yang kukuh tanpa pengendalian pengecualian terbina dalam. Anda berlatih C Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan C Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran C Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 3.
Berapa lamakah pelajaran “Pengendalian Pengecualian dalam C” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran C Academy ini?
Ya. Setiap pelajaran C Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Penyahpepijatan dengan GDB
- Ralat Masa Jalan yang Biasa
- Pengendalian Pengecualian dalam C