Section Artikel
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).
Penanganan pengecualian(exception) di C ++ terdiri dari tiga kata kunci: try
, throw
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 :
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 :