Pengertian Pernyataan Exception Handling
Pernyataan exception adalah sebuah fitur khusus yang disediakan oleh bahasa pemrograman C++ untuk menangani kondisi error pada saat program sedang berjalan untuk mencegah adanya pemberhentian program karena kesalahan kode atau program, sebagai gantinya programmer secara manual melaukan penanganan atas error tersebut.
Bentuk Penulisan
try{ throw x; }catch(parameter){ //... }
Pada pernyataan Exception Handling, terdapat 3 kata kunci, yaitu:
try
, adalah sebuah blok dari kumpulan kode dimana biasanya sebuah kesalahan muncul, dan tempat dimana kita juga dapat memberikan tugas Pengecualianthrow
.catch
, adalah sebuah blok yang akan dieksekusi ketika sebuah Pengecualian telah di lemparkan.- Dan
throw
, adalah sebuah pertanyaan yang digunakan untuk melemparkan sebuah Pengecualian secara manual oleh Programmer.
Code dengan penjelasan:
try{ //baris kode throw x;//pernyataan pelemparan }catch(parameter){ //respon tangkapan }catch(parameter){ //bisa mendirikan banyak catch dengan //parameter yang berbeda //respon tangkapan }catch(...){ //default catch, jika tidak ada parameter //yang cocok maka ini akan dijalankan //respon tangkapan }
Di bawah ini adalah contoh program dan memperlihatkan bagaimana alur eksekusi CPU akan bekerja, dengan cara menunjukan beberapa pernyataan keluaran yang akan dieksekusi dan yang tidak akan dieksekusi.
Contoh Program:
#include <iostream> using namespace std; int main() { try{ cout<<"Selamat Belajar C++"<<endl; throw 1; //melemparkan sebuah integer maka cout<<"Pernyataan tidak akan dieksekusi"<<endl; }catch(int a){ //blok ini akan dieksekusi cout<<"Pengecualian akan dieksekusi"<<endl; }catch(...){ /*jika selain integer maka block ini akan diesekusi*/ cout<<"default Pengecualian diexsekusi"<<endl; } return 0; }
C++ Standards Exception
Jika pada penjelasan di atas kita mencoba untuk melemparkan argumen secara manual kepada penangkap Pengecualian (catch
), C++ juga menyediakan pustaka Standard Exception yaitu
untuk menangani dan menerima argumen berupa obyek std::exception
.
Jadi jika terjadi kesalahan pada ruang ligkup try
(tanpa melempar), std::exception
akan menerima obyek dari kesalahan tersebut dan kita dimungkinkan untuk mengakses pesan kesalahan di dalam obyek tersebut.
Contoh Penulisan:
try{ //kode yang dilindungi }catch(std::exception &e){ cout<<”error : ”<<e.what()<<endl; }
Contoh Program:
#include <iostream> #include <exception> //untuk obyek exception yang akan digunakan #include <array> //untuk obyek array yang akan kita gunakan using namespace std; int main() { cout<<"Awal Program"<<endl; //penanda 1:... try{ array<int, 3> data = {1, 2, 3}; //pesan array integer 3 elemen cout<<data.at(5)<<endl; //memanggil array elemen ke 5 }catch(exception &e){ //penangkap menggunakan obyek exception cout<<e.what()<<endl; /*akan dieksekusi karna array data hanya memiliki 3 elemen*/ } cout<<"Akhir Program"<<endl; /*penanda 2: bahwa program berjalan tanpa berhenti meskipun terjadi kesalahan*/ return 0; }