Penjelasan Pernyataan Penanganan Pengecualian (Exception Handling)

Written by: Fajar   |   Updated on: Maret 15, 2020
Exception Handling

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:

  1. try, adalah sebuah blok dari kumpulan kode dimana biasanya sebuah kesalahan muncul, dan tempat dimana kita juga dapat memberikan tugas Pengecualian throw.
  2. catch, adalah sebuah blok yang akan dieksekusi ketika sebuah Pengecualian telah di lemparkan.
  3. 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;
}
Baca :   Penjelasan dan Tipe-tipe Pewarisan (Inheritance)

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *