Cara Mengendalikan Pengecualian dengan Mudah dalam C++

Cara Mengendalikan Pengecualian Dengan Mudah Dalam C



Peristiwa tidak dijangka yang berlaku semasa program berjalan dirujuk sebagai pengecualian atau ralat. Pengecualian berlaku semasa masa jalanan, dan tidak boleh ditangkap semasa penyusunan, jadi ia boleh menyebabkan masalah serius dalam program. Mengendalikan pengecualian dengan baik dalam program C++ adalah objektif utama bagi seorang pengaturcara untuk mendapatkan hasil yang diinginkan.

Cara Mengendalikan Pengecualian dengan Mudah dalam C++

Pengendalian Pengecualian dalam C++ merujuk kepada mekanisme mengesan ralat masa jalan dan mengendalikannya dengan cekap, seperti mengendalikan input tidak sah, pembahagian nombor dengan sifar dalam operasi bahagi dan banyak lagi.

Pengendalian Pengecualian dalam C++ melibatkan tiga kata kunci: cuba, baling dan tangkap. Kenyataan cuba membolehkan pengguna mentakrifkan blok kod yang mungkin menimbulkan pengecualian dalam kod. Kata kunci lontaran membuang pengecualian jika dikesan selepas menyemak blok di bawah kata kunci cuba. Kata kunci tangkapan mengandungi blok kod yang boleh mengendalikan pengecualian yang diperhatikan dalam blok cuba.







Contoh 1: Pengendalian Pengecualian Semasa Pembahagian

Kod ditulis untuk menyemak pengecualian semasa pembahagian.



#include
menggunakan ruang nama std ;

int utama ( ) {

berganda pengangka, penyebut, pembahagian ;

cout << 'Masukkan nilai pengangka: ' ;
makan >> pengangka ;

cout <> penyebut ;

cubalah {


jika ( penyebut == 0 )
melontar 0 ;


pembahagian = pengangka / penyebut ;
cout << pengangka << '/' << penyebut << '=' << pembahagian << endl ;
}

tangkap ( int num_exception ) {
cout << 'Ralat! Pembahagi tidak boleh  ' << num_exception << endl ;
}

kembali 0 ;
}

Dalam program ini, pengguna memasukkan nilai pengangka dan penyebut yang diisytiharkan dalam bahagian utama(). Dalam blok cuba, pernyataan if digunakan untuk menyemak pengecualian iaitu sama ada penyebutnya adalah sifar atau tidak. Oleh kerana pembahagian tidak boleh dilakukan dengan pembahagi sifar jika penyebutnya didapati 0, ia akan membuang pengecualian dan blok tangkapan akan mengembalikan hujah ralat jika operasi pembahagian mudah dilakukan.







Pengguna memasukkan pengangka 42 dan 0 dalam penyebut, yang membuang pengecualian, jadi atur cara mengembalikan hujah ralat.



Pengguna memasukkan pengangka 42 dan 2 sebagai penyebut, kerana tiada pengecualian ditemui, hasilnya selepas pembahagian kembali.

Contoh 2 Pengendalian Pengecualian untuk Semak Umur

Program ini menyemak pengecualian dalam umur pengguna.

#include
menggunakan ruang nama std ;

/*
Di sini, kami ingin membuang pengecualian (umur sebagai pengecualian) jika umur seseorang itu kurang daripada 18 tahun.
*/

int utama ( )
{
// menyemak sama ada umur lebih daripada 18 dalam blok percubaan.
cubalah
{
int umur ;
cout << 'Masukkan umur anda untuk mengakses: ' ;
makan >> umur ;

jika ( umur >= 18 )
{
cout << 'Akses diberikan.' ;
}
// pengecualian tersuai dilemparkan jika umur di bawah 18 tahun.
lain
{
melontar ( umur ) ;
}
}
// menangkap pengecualian yang dilemparkan dan memaparkan output yang dikehendaki (akses ditolak!)
tangkap ( int x )
{
cout << 'Akses ditolak! Anda di bawah umur.' << endl ;
}
kembali 0 ;
}

Dalam program ini, pembolehubah dengan nilai integer ditakrifkan. Pengguna diminta untuk memasukkan umur dan mencuba semakan sekatan jika umur pengguna di atas atau sama dengan 18. Jika ia tidak benar maka ia membuang pengecualian, dan blok pengecualian akan mengembalikan Akses dinafikan! Hujah. Jika tidak, akses akan diberikan.

Pengguna memasukkan umur menjadi 12 tahun untuk menyemak geran akses, kerana umur ini di bawah 18 tahun, jadi argumen Access dinafikan dikembalikan.

Pengguna memasukkan umur 20, kerana ini melebihi 18 tahun, jadi akses diberikan kepada pengguna.

Catatan : Jika tiada blok tangkapan dalam program, maka program akan berkelakuan tidak normal dan ditamatkan secara tidak dijangka sekiranya berlaku pengecualian.

Kesimpulan

Pengendalian Pengecualian dalam C++ merujuk kepada mekanisme mengesan ralat masa jalan dan mengendalikannya dengan cekap. Ia melibatkan tiga kata kunci cuba, baling dan tangkap. Pengecualian disemak untuk kod dalam blok cuba, kata kunci lontaran membuang pengecualian jika ditemui, dan blok tangkapan mengendalikan pengecualian yang dilemparkan untuk blok percubaan. Mengendalikan pengecualian menjadikan pengalaman pengguna lancar dan hebat dengan mengelakkan ralat masa jalan.