C++ memberi kita kelas penanganan pengecualian standar , yang digunakan untuk menampilkan pengecualian ketika fungsi di pustaka standar C++ dijalankan. Struktur hierarki kelas pengecualian standar yang disediakan oleh C++ adalah sebagai berikut:
Dapat dilihat bahwa semua kelas pengecualian mewarisi dari kelas dasar pengecualian. Logic_error dan runtime_error di bawah kelas pengecualian adalah dua kategori yang relatif besar, termasuk beberapa kelas mandiri.
Berikan contohnya seperti:
1. Saat kita menggunakan new untuk membuka memori, jika ruang tidak mencukupi, pengecualian bad_alloc akan dilempar.
2. Saat kita menggunakan Dynamic_cast() untuk melakukan konversi tipe dinamis dan gagal, pengecualian bad_typeid akan dilempar.
3. Ketika nilai yang dihitung melebihi rentang maksimum yang diwakili oleh tipe, pengecualian overflow_error dilempar, yang menunjukkan operasi overflow. Demikian pula, underflow_error menunjukkan operasi underflow.
4. Saat kita menggunakan subskrip kelas string tetapi melampaui batas, pengecualian out_of_range akan muncul.
Tunggu...tunggu...tolong cari tahu lebih lanjut sendiri.
Perlu dicatat bahwa ketika menggunakan kelas pengecualian standar yang disertakan dengan C++, Anda perlu menyertakan file header yang sesuai, karena kelas pengecualian dan bad_Exception didefinisikan dalam pengecualian file header, kelas bad_alloc didefinisikan dalam file header baru, dan kelas bad_typeid didefinisikan dalam file header typeinfo , kelas ios_base::failure didefinisikan dalam file header ios, dan kelas pengecualian lainnya didefinisikan dalam stdkecuali.
Di bawah ini, saya akan menunjukkan cara menggunakan kelas pengecualian standar C++ :
#include<iostream>#include<new>#include<stdkecuali>usingnamespacestd;//Pengecualian menangani intmain(){string*s;try{s=newstring(www.dotcpp.com);cout<<s->substr( 15,5);}catch(bad_alloc&t){cout<<Pengecualian terjadi:<<t.what()<<endl;}catch(out_of_range&t){cout<<Pengecualian terjadi:<<t.what()<<endl;} kembali0;}
Hasil yang berjalan adalah sebagai berikut:
Silakan mencobanya sendiri dan pelajari cara menggunakannya!