C++ Try-Catch-Akhirnya

C Try Catch Akhirnya



C++ menyediakan kaedah 'cuba-tangkap' untuk mengendalikan pengecualian. Apabila pengecualian berlaku dalam program C++, kaedah 'try-catch' ini membantu dalam mengalihkan kawalan dari satu bahagian kod program ke bahagian yang lain. Pengecualian ialah gangguan yang muncul semasa program sedang berjalan. Apabila situasi luar biasa, seperti cuba membahagi dengan sifar, berlaku semasa program sedang dilaksanakan, pengecualian C++ dinaikkan dan kami mengendalikan situasi ini dengan hanya menggunakan kaedah 'cuba-tangkap' dalam kod kami. Ia mengandungi tiga kata kunci: 'cuba', 'tangkap' dan 'buang'. Kata kunci 'lempar' digunakan untuk membuang pengecualian dalam bahagian kod lain. Pengaturcaraan C++ tidak memudahkan kami dengan kata kunci 'akhirnya', tetapi kami boleh menggunakan kata kunci 'cuba', 'tangkap' dan 'buang' dalam kod C++.

Contoh 1:

'iostream' disertakan di sini, fail pengepala di mana beberapa fungsi diisytiharkan. Kami menggunakan fungsi ini yang diisytiharkan dalam fail pengepala ini dalam kod kami, jadi kami memasukkan fail pengepala ini. Selepas ini, kami mempunyai 'std' yang diletakkan di sini kerana fungsi seperti 'cin' dan 'cout' juga ditakrifkan di dalamnya. Kami tidak perlu menaip 'std' dengan semua fungsi ini jika kami menambah 'ruang nama std' pada permulaan kod kami. Selepas ini, fungsi 'main()' digunakan di sini yang juga dirujuk sebagai kod pemacu program C++.

Kemudian, kami menggunakan kata kunci 'cuba' di sini di mana kami memulakan 'my_num1' dengan nilai '35'. Ia ialah pembolehubah jenis data 'int' di sini. Sekarang, kami meletakkan pembolehubah ini di dalam 'jika' dan meletakkan syarat yang mengatakan bahawa 'my_num1' mesti lebih besar daripada atau sama dengan '98'. Jika syarat yang diberikan dipenuhi, ia bergerak ke hadapan dalam 'jika' dan melaksanakan pernyataan yang ditulis di sini. Kami menggunakan 'cout' dan memasukkan mesej untuk dipaparkan apabila syaratnya dipenuhi.







Selepas ini, kami menggunakan kata kunci 'buang' selepas meletakkan 'lain'. Dalam kata kunci 'buang' ini, kami lulus 'my_num1' sebagai parameter. Kami menambah bahagian 'tangkap' di bawah ini. Kami memasukkan 'my_num2' sebagai parameter 'catch()' dan kemudian menggunakan 'cout' sekali lagi di dalam bahagian 'catch' ini. Bahagian ini dilaksanakan hanya apabila pengecualian berlaku dalam bahagian 'cuba'.



Kod 1:



#include
menggunakan ruang nama std ;
int utama ( ) {
cubalah {
int my_num1 = 35 ;
jika ( my_num1 >= 98 ) {
cout << 'Akses diberikan di sini.' ;
} lain {
melontar ( my_num1 ) ;
}
}
tangkap ( int my_num2 ) {
cout << 'Akses dinafikan di sini.' << endl ;
cout << 'Nombornya ialah:' << my_num2 ;
}
kembali 0 ;
}

Pengeluaran:
Nombor yang kami masukkan ialah “35” iaitu kurang daripada “98”. Jadi, pengecualian berlaku di sana dan bahagian 'catch()' dipaparkan. Akses ke bahagian 'cuba' dinafikan.





Contoh 2:

Kami meletakkan fail pengepala 'iostream' di sini dan 'ruang nama std'. Selepas ini, kami mencipta fungsi 'division()' di mana kami meletakkan dua parameter iaitu 'numerator' dan 'denominator' jenis data 'int'. Kami menetapkan jenis data fungsi 'bahagian' ini kepada 'berganda'.



Di bawah ini, kami menambah 'jika()' di mana kami menambah syarat bahawa penyebutnya sama dengan sifar. Selepas ini, kami menggunakan kata kunci 'buang' dan menaip mesej di sana. Mesej ini diberikan apabila pengecualian berlaku dalam kod ini mengikut syarat. Di bawah ini, kami menggunakan kata kunci 'kembali' di mana kami meletakkan 'pembilang/penyebut'. Jadi, ia mengembalikan hasil pembahagian. Sekarang, fungsi 'utama()' dipanggil.

Selepas ini, 'num1' dan 'num2' dimulakan sebagai pembolehubah 'int' dan menetapkan '89' dan '0' kepada mereka masing-masing. Kemudian, kami memulakan 'hasil' jenis data 'berganda'. Di sini, kami menggunakan kata kunci 'cuba'. Dalam bahagian ini, kami menambah pembolehubah 'hasil' ini dan menetapkan fungsi 'division()' kepada pembolehubah ini. Kami lulus dua parameter kepada fungsi ini: 'num1' dan 'num2'. Di bawah ini, kami memaparkan 'hasil' yang kami dapat selepas menggunakan fungsi 'division()'. Selepas ini, kami juga menggunakan 'tangkap' dan meletakkan 'const char* msg' untuk memaparkan mesej yang kami tambahkan sebelum ini.

Kod 2:

#include
menggunakan ruang nama std ;
berganda pembahagian ( int pengangka, int penyebut ) {
jika ( penyebut == 0 ) {
melontar 'Pembahagian dengan sifar tidak boleh dilakukan di sini!' ;
}
kembali ( pengangka / penyebut ) ;
}
int utama ( ) {
int nombor1 = 89 ;
int nombor2 = 0 ;
berganda hasil = 0 ;
cubalah {
hasil = pembahagian ( nombor1, nombor2 ) ;
cout << hasil << endl ;
} tangkap ( const char * msg ) {
cerr << msg << endl ;
}
kembali 0 ;
}

Pengeluaran:
Nombor yang sebelum ini kami masukkan sebagai penyebut ialah '0'. Jadi, pengecualian berlaku dalam kod dan ia memaparkan mesej yang diberikan.

Contoh 3:

Fungsi 'pendaraban()' dicipta di sini di mana kita meletakkan 'nilai' dan 'pendarab' sebagai parameter jenis data 'int'. Kemudian, kami menggunakan 'jika' di mana kami menambah keadaan pengganda yang sama dengan sifar. Kemudian, 'buang' diletakkan di mana kita menambah kenyataan. Kemudian, kami mempunyai 'pulangan' di mana kami meletakkan pembolehubah 'nilai * pengganda' yang kami isytiharkan sebelum ini. Jadi, ia mengembalikan hasil pendaraban di sini.

Selepas ini, kami memanggil 'main()' di mana kami mengisytiharkan 'int value1' dan 'int value2' masing-masing dengan nilai '34' dan '0'. 'int m_res' juga diisytiharkan dan kemudian dipanggil fungsi 'pendaraban()' di sini. Selepas melaksanakan fungsi ini, hasilnya kini disimpan dalam pembolehubah 'm_res' dan kemudian dipaparkan. Selepas itu, kami menggunakan fungsi 'tangkap' dan memasukkan 'const char* msg' untuk mempamerkan mesej yang kami tambahkan sebelum ini dalam bahagian 'lempar'.

Kod 3:

#include
menggunakan ruang nama std ;
berganda pendaraban ( int nilai, int pengganda ) {
jika ( pengganda == 0 ) {
melontar 'Kami tidak mendarabkan nilai dengan sifar!' ;
}
kembali ( nilai * pengganda ) ;
}
int utama ( ) {
int nilai1 = 3. 4 ;
int nilai2 = 0 ;
int m_res ;
cubalah {
m_res = pendaraban ( nilai1, nilai2 ) ;
cout << m_res << endl ;
} tangkap ( const char * msg ) {
cerr << msg << endl ;
}
kembali 0 ;
}

Pengeluaran :
Memandangkan nilai yang kami masukkan sebelum ini mempunyai '0' sebagai pengganda, kod tersebut mempunyai pengecualian yang menyebabkan notis dipaparkan di sini.

Contoh 4:

Di sini, kami membina fungsi 'darab()' dan masukkan 'nombor1' dan 'nombor2' sebagai parameter jenis data 'int'. Seterusnya, kami menggunakan pengendali 'jika' untuk menambah syarat padanya yang merupakan pengganda yang kurang daripada atau sama dengan sifar. Selepas itu, kenyataan itu ditambah di mana 'lempar' sepatutnya. Hasil pendaraban kemudian dikembalikan dalam bahagian 'kembali' di mana kami memasukkan pembolehubah 'nombor1 * nombor2' yang kami isytiharkan sebelum ini.

Selepas itu, kami menggunakan fungsi 'main()' dan menetapkan nilai '34' dan '12' kepada 'int newNumber1' dan 'int newNumber2', masing-masing. Di sini, fungsi 'darab()' dipanggil selepas pengisytiharan 'int mResult'. Kini, hasil fungsi ini disimpan dalam pembolehubah 'mResult' dan dipaparkan dalam perkara berikut. Kami kemudian menggunakan fungsi 'tangkap' dan menambah 'const char* msg' untuk memaparkan mesej yang kami tulis dalam bahagian 'lempar'.

Kod 4:

#include
menggunakan ruang nama std ;
berganda membiak ( int nombor 1 , int nombor2 ) {
jika ( nombor2 <= 0 ) {
melontar 'Kami tidak mendarabkan nilai dengan nilai sifar atau negatif!' ;
}
kembali ( nombor 1 * nombor2 ) ;
}
int utama ( ) {
int newNum1 = 3. 4 ;
int newNum2 = 12 ;
int mResult ;
cubalah {
mResult = membiak ( newNum1, newNum2 ) ;
cout << 'Hasil pendaraban ialah' << mResult << endl ;
}
tangkap ( const char * msg ) {
cerr << msg << endl ;
}
kembali 0 ;
}

Pengeluaran:
Nilai yang kami tambah ialah '12' di mana kami menambah syarat. Jadi, fungsi 'darab()' dilakukan kerana syarat itu tidak benar. Hasil pendaraban dipaparkan. Bahagian 'cuba' dilaksanakan di sini.

Kesimpulan

Konsep 'cuba-tangkap' dan kod dalam panduan ini dikaji secara terperinci. Kami meneroka konsep 'cuba-tangkap' ini dengan teliti dan menunjukkan cara ia berfungsi dalam pengaturcaraan C++. Kami menentukan bahawa istilah 'lempar' mencipta pengecualian apabila ralat ditemui yang membolehkan kami menulis kod unik kami. Menggunakan ungkapan 'tangkap', kita boleh menentukan blok kod untuk dijalankan jika pengecualian muncul dalam bahagian 'cuba'.