C Academy · Pelajaran

Pengendalian Pengecualian dalam C

Laksanakan strategi pengendalian ralat yang kukuh tanpa pengendalian pengecualian terbina dalam.

Pelajaran 3 daripada 310 langkah

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 setjmp dan longjmp untuk pengendalian pengecualian.
  • Cara menggunakan errno untuk pengendalian ralat sistem.
Pengendalian Pengecualian dalam C — ilustrasi 1

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 errno untuk ralat sistem.
  • Gunakan setjmp dan longjmp hanya apabila perlu.

Ringkasan

Dalam pelajaran ini, anda telah mempelajari:

  • Cara mengendalikan ralat menggunakan nilai pulangan.
  • Cara setjmp dan longjmp mensimulasikan pengendalian pengecualian.
  • Cara menggunakan errno untuk mengesan ralat sistem.

Ini mengakhiri bahagian Penyahpepijatan dan Pengendalian Ralat dalam C!

Pengendalian Pengecualian dalam C — ilustrasi 10
Percuma untuk bermula

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

  1. Penyahpepijatan dengan GDB
  2. Ralat Masa Jalan yang Biasa
  3. Pengendalian Pengecualian dalam C
← Kembali ke C Academy