Pengecualian C++
Pengecualian C++
Saat mengeksekusi kode C++, kesalahan yang berbeda dapat terjadi: kesalahan pengkodean yang dibuat oleh programmer, kesalahan karena input yang salah, atau hal-hal lain yang tidak terduga.
Ketika terjadi kesalahan, C++ biasanya akan berhenti dan menghasilkan pesan kesalahan. Istilah teknis untuk ini adalah: C++ akan melempar pengecualian (melempar kesalahan).
C++ coba dan tangkap
Penanganan eksepsi dalam C++ terdiri dari tiga kata kunci: try
, throw
dan catch
:
Pernyataan try
tersebut memungkinkan Anda untuk menentukan blok kode yang akan diuji kesalahannya saat sedang dieksekusi.
Kata throw
kunci mengeluarkan pengecualian ketika masalah terdeteksi, yang memungkinkan kami membuat kesalahan khusus.
Pernyataan catch
tersebut memungkinkan Anda untuk menentukan blok kode yang akan dieksekusi, jika terjadi kesalahan pada blok try.
Kata kunci try
dan catch
berpasangan:
Contoh
try {
// Block of code to try
throw exception;
// Throw an exception when a problem arise
}
catch () {
// Block of code to handle errors
}
Perhatikan contoh berikut:
Contoh
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;
}
Contoh dijelaskan
Kami menggunakan try
blok untuk menguji beberapa kode: Jika age
variabel kurang dari 18
, kami akan throw
membuat pengecualian, dan menanganinya di catch
blok kami.
Di catch
blok, kami menangkap kesalahan dan melakukan sesuatu untuk itu. Pernyataan catch
mengambil parameter : dalam contoh kita, kita menggunakan int
variabel ( myNum
) (karena kita melempar pengecualian int
tipe di try
blok ( age
)), untuk menampilkan nilai age
.
Jika tidak ada kesalahan yang terjadi (misalnya jika age
bukan 20
, 15
artinya akan lebih besar dari 18), catch
blok dilewati:
Contoh
int age = 20;
Anda juga dapat menggunakan throw
kata kunci untuk menampilkan nomor referensi, seperti nomor/kode kesalahan khusus untuk tujuan pengorganisasian:
Contoh
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;
}
Menangani Semua Jenis Pengecualian (...)
Jika Anda tidak mengetahui throw
jenis yang digunakan dalam try
blok, Anda dapat menggunakan sintaks "tiga titik" ( ...
) di dalam catch
blok, yang akan menangani semua jenis pengecualian:
Contoh
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";
}