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;
}