Blok 'try' dan 'catch'
Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 49 dari 56.
Blok try dan catch bekerja sama untuk membuat jaring pengaman bagi kodemu. Kamu menempatkan kode yang berpotensi berisiko di dalam blok try, dan jika terjadi pengecualian, program akan melompat ke blok catch yang sesuai untuk menangani error dengan baik.
Berikut struktur sintaks dasarnya:
try {
// Kode yang mungkin memunculkan pengecualian
} catch (exception_type e) {
// Kode untuk menangani pengecualian
}Contoh praktisnya adalah mengonversi string menjadi angka menggunakan std::stoi, yang dapat melempar pengecualian std::invalid_argument jika string berisi karakter nonnumerik:
try {
std::string input = "abc";
int number = std::stoi(input); // Ini akan melempar exception
std::cout << "Number: " << number << std::endl;
} catch (std::invalid_argument& e) {
std::cout << "Invalid input! Please enter a valid number." << std::endl;
}Ketika exception terjadi di blok try, program langsung berhenti menjalankan sisa kode di blok tersebut dan beralih ke blok catch. Ini mencegah programmu crash dan memungkinkan kamu memberikan umpan balik yang bermakna kepada pengguna saat terjadi masalah.
Tantangan
MudahBuat program yang menunjukkan konversi string ke angka dengan aman menggunakan blok try dan catch. Tantangan ini akan menguji pemahamanmu tentang cara menangani exception yang terjadi saat mengonversi input pengguna dari string menjadi integer.
Input berikut akan diberikan:
- Sebuah string
userInputyang mungkin merupakan integer valid atau bukan
Programmu harus:
- Menempatkan konversi string ke integer di dalam blok
trymenggunakanstd::stoi - Jika konversi berhasil, cetak angka yang sudah dikonversi dengan pesan keberhasilan
- Gunakan blok
catchuntuk menangani exceptionstd::invalid_argumentyang terjadi saat string berisi karakter nonangka - Di dalam blok catch, cetak pesan error yang menunjukkan bahwa input tidak valid
Gunakan format output berikut secara persis:
Untuk konversi yang berhasil:
Valid number: [converted_number]Untuk input tidak valid yang memicu exception:
Error: Invalid inputIngat bahwa std::stoi akan memicu exception std::invalid_argument saat menemukan string yang tidak dapat dikonversi menjadi integer. Blok try harus berisi percobaan konversi, dan blok catch harus mencantumkan tipe exception sebagai std::invalid_argument& untuk menangani error khusus ini. Saat exception terjadi, program akan langsung berpindah dari blok try ke blok catch yang cocok, sehingga program tidak mengalami crash.
Coba sendiri
#include <iostream>
#include <string>
using namespace std;
int main() {
// Baca input
string userInput;
cin >> userInput;
// TODO: Tulis kodemu di bawah ini
// Gunakan blok try-catch dengan std::stoi untuk mengonversi string
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Pointer dan Memori
Apa Itu Pointer?Operator Address-OfOperator DereferencePointer NullPointer dan ArrayMemori Dinamis dengan 'new'Membebaskan Memori dengan 'delete'Rangkuman: Latihan Pointer2Vektor (array Dinamis)
Memperkenalkan std::vectorMembuat VektorMenambahkan ElemenMengakses ElemenUkuran VektorIterasi dengan for loopFor loop Berbasis RentangMenghapus ElemenRangkuman: Operasi Vektor5Proyek: Alat Inventaris
Menyiapkan ProyekMenambahkan dan Memperbarui Barang8Penanganan error Dasar
Pengenalan ExceptionBlok 'try' dan 'catch'Kata Kunci 'throw'Berbagai Tipe ExceptionPenangan Semua ExceptionRingkasan: Pembagian AmanLatihan sendiri: Compiler C++ online