Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Anda Boleh Menyesuaikan Pengendalian Pengecualian dalam C?

Bagaimanakah Anda Boleh Menyesuaikan Pengendalian Pengecualian dalam C?

Barbara Streisand
Barbara Streisandasal
2024-11-14 14:08:02435semak imbas

How Can You Customize Exception Handling in C  ?

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!

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