Home » C++ » Exceptions (Pengecualian) di C++ – Kode dan Contohnya

Exceptions (Pengecualian) di C++ – Kode dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Pengecualian di C ++

Saat menjalankan kode C ++ kesalahan yang berbeda dapat terjadi: kesalahan pengkodean yang dibuat oleh pemrogram, kesalahan karena input yang salah atau hal-hal tak terduga lainnya.

Ketika terjadi kesalahan, C ++ biasanya akan berhenti dan menghasilkan pesan kesalahan. Istilah teknis untuk ini adalah: C ++ akan mengeluarkan pengecualian (pesan error).

Mencoba dan Menangkap C++

Penanganan pengecualian(exception) di C ++ terdiri dari tiga kata kunci: trythrow  dan catch

Pernyataan try memungkinkan kita untuk menentukan blok kode yang akan diuji kesalahannya saat sedang dijalankan.

Kata kunci throw melontarkan pengecualian(exceptions) saat masalah terdeteksi, yang memungkinkan kita membuat kesalahan khusus.

Pernyataan catch memungkinkan kita untuk menentukan blok kode yang akan dieksekusi, jika terjadi kesalahan di blok percobaan.

Kata kunci try dan catch biasanya di pasangkan:

Contoh :

try {
  // Kode blok untuk try
  throw exception; // Exception Throw ketika ada masalah
}
catch () {
  // Kode blok untuk menangani error
}

Perhatikan contoh berikut:

Contoh :

#include <iostream>
using namespace std;

int main() {
  try {
    int age = 15;
    if (age > 18) {
      cout << "Access granted - you are old enough.";
    } else {
      throw (age);
    }
  }
  catch (int myNum) {
    cout << "Access denied - You must be at least 18 years old.\n";
    cout << "Age is: " << myNum;  
  }
  return 0;
}

Output :

Penjelasan Kode

Contoh di atas menggunakan blok try untuk menguji beberapa kode: Jika variabel age kurang dari 18, maka akan terjadi throw exception(pengecualian) dan menanganinya di blok catch .

Di blok catch, kita menangkap kesalahan dan melakukan sesuatu untuk mengatasinya. Pernyataan catch mengambil parameter: dalam contoh ini, kita menggunakan variabel int (myNum) (karena kita throw pengecualian(exceptions) tipe int di blok try (age)), untuk menampilkan nilai age.

Jika tidak ada kesalahan yang terjadi (misalnya jika age 20 bukan 15, artinya akan lebih besar dari 18), maka blok catch akan dilewati:

Contoh :

#include <iostream>
using namespace std;

int main() {
  try {
    int age = 20;
    if (age > 18) {
      cout << "Access granted - you are old enough.";
    } else {
      throw (age);
    }
  }
  catch (int myNum) {
    cout << "Access denied - You must be at least 18 years old.\n";
    cout << "Age is: " << myNum;  
  }
  return 0;
}

Output :

Kita juga dapat menggunakan kata kunci throw untuk menghasilkan nomor referensi, seperti nomor / kode kesalahan khusus untuk tujuan pengaturan:

Contoh :

#include <iostream>
using namespace std;

int main() {
  try {
    int age = 15;
    if (age > 18) {
      cout << "Access granted - you are old enough.";
    } else {
      throw 505;
    }
  }
  catch (int myNum) {
    cout << "Access denied - You must be at least 18 years old.\n";
    cout << "Error number: " << myNum;  
  }
  return 0;
}

Output :

Menangani Segala Jenis Pengecualian (…)

Jika tidak mengetahui jenis throw yang digunakan dalam blok try, kita bisa menggunakan sintaks “tiga titik” () di dalam blok catch, yang akan menangani semua jenis pengecualian(exception):

Contoh :

#include <iostream>
using namespace std;

int main() {
  try {
    int age = 15;
    if (age > 18) {
      cout << "Access granted - you are old enough.";
    } else {
      throw 505;
    }
  }
  catch (...) {
    cout << "Access denied - You must be at least 18 years old.\n";
  }
  return 0;
}

Output :

You may also like