Exception Handling

Exceptions adalah anomali atau kondisi abnormal di saat program dijalankan. Exception bisa dikelompokkan jadi 2 macam. 

  • Synchronous, yang masih berada dalam kendali program.
  • Asynchronous yang berada di luar kendali dari program, misalnya error dari hardware.

C++ menyediakan exception handling dengan try dan catch. Selain itu, ada keyword throw yang bisa digunakan untuk mengirim pesan error di dalam catch maupun bagian lain dari program. Program-program lama biasanya menangani error hanya dengan if-else.

Kalian bisa menguji error di dalam blok try. Error terakhir yang sudah kalian lemparkan dengan throw bisa kalian dapatkan di dalam blok catch. Contoh sederhana penanganan error dengan try dan catch bisa kalian lihat di bawah ini.

#include <iostream>

using namespace std;
int main(){
	
    int i=0;
    try{
        if(i==0){
            i=5/i;
            throw "Division by zero!";
        }
    }catch(const char *pesan){
        cerr << "Error : " << pesan << endl;
    }
    return 0;
}
Output :
Error : Division by zero!

Tipe data variabel yang digunakan catch tidak harus berupa tipe pointer char. Pointer char digunakan jika throw menggunakan string. Tipe data variabel tersebut tergantung pada nilai yang diberikan throw.