Anda di halaman 1dari 2

MENGENAL EXCEPTION HANDLING PADA C++

Pada bahasa pemrograman C++, terdapat suatu metode yang dinamakan Exception Handling.
Exception handling ini digunakan untuk menangani error atau keadaan tertentu yang terjadi ketika
program sedang berjalan. Ketika terjadi error saat program berjalan (runtime error) program akan
mengarahkan alur eksekusi program ke fungsi khusus yang dinamakan handler. Namun jika tidak terjadi
error yang menyebabkan exception maka semua handler akan diabaikan dan program dijalankan secara
normal.
Dengan menggunakan exception handling akan memudahkan programmer untuk memisahkan
blok kode untuk menangani kesalahan dengan blok kode inti dari program. Hal tersebut tentunya juga
akan membuat kode program menjadi rapi dan mudah untuk dibaca.

Terdapat tiga keyword yang digunakan pada Exception Handling C++, yaitu try, catch, dan throw.

Bentuk penulisan exception handling c++ :


try
{
//code pada try
}
catch(namaexception1/tipe e1)
{
//code pada catch
}
catch(namaexception2/tipe e2)
{
//code pada catch
}

Untuk mengetahui penggunaan keyword (try, catch, throw) dan alur eksekusi exception handling c++,
perhatikan program di bawah ini.

/*
Mengenal Exeption Handling pada C++
*/
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
cout<<"EXCEPTION HANDLING C++"<<endl;
cout<<"----------------------"<<endl;
try
{
//throw(53);
throw("Pesan ini ditangkap oleh handler dan ditampilkan ke layar.");
//throw(53.4);
}
catch(int e) //handler
{
cout<<e<<endl;
}
catch(char* e) //handler
{
cout<<e<<endl;
}
catch(...) //default handler
{
cout<<"Default Handler\nMenangkap semua exception yang tidak dapat
ditangkap/ditangani handler lain."<<endl;
}
getch();
return 0;
}
Penjelasan:
Pada program di atas terdapat tiga buah handler
a. catch(int e){ } : digunakan untuk menangkap/menangani exception bertipe integer yang dilempar
dengan keyword throw
b. catch(char*e){ } : digunakan untuk menangkap/menangani exception bertipe karakter/string yang
dilempar dengan keyword throw
c. catch(...){ } : Jika menggunakan parameter berupa ellipsis (...) maka handler ini dapat digunakan untuk
menangkap semua exception yang tidak dapat ditangkap/ditangani oleh handler lain, tidak peduli tipe
exceptionnya. Handler ketiga ini berperan sebagai handler default, kurang lebih tugasnya hampir sama
dengan default yang terdapat pada switch-case.

Alur exception handling:


Kode dalam try dijalankan, kemudian throw("Pesan ini ditangkap oleh handler dan ditampilkan ke
layar."); dieksekusi. Selanjutnya handler menangkap exception, di sini perlu diperhatikan handler yang
digunakan untuk menangkap/menangani exception sesuai dengan tipe exception yang dilemparkan
melalui keyword throw, maka handler catch(char* e){ } lah yang dijalankan.