Study
C++

Exception Handling di C++ (Try/Catch)

Penjelasan

Exception handling dipakai untuk menangani situasi tak terduga (mis. pembagian dengan nol, index array tidak valid) tanpa membuat program crash. C++ memakai blok try/catch: kode yang berpotensi error ditaruh di try, exception dilempar dengan throw, dan penanganannya ditangkap di catch.

Contoh Konsep

#include <iostream>
#include <stdexcept>

double bagi(int a, int b) {
    if (b == 0) {
        throw std::invalid_argument("Tidak bisa membagi dengan nol.");
    }

    return (double) a / b;
}

int main() {
    try {
        std::cout << bagi(10, 0) << std::endl;
    } catch (const std::invalid_argument &e) {
        std::cout << "Error: " << e.what() << std::endl;
    }
    return 0;
}

Praktikum

Buat fungsi int ambilElemen(int data[], int ukuran, int index) yang melempar std::out_of_range kalau index di luar jangkauan. Panggil fungsi itu di dalam try/catch dengan index yang sengaja tidak ada, lalu tampilkan pesan error-nya.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Tangkap exception lewat referensi const (const std::exception &e) dibanding by value — mencegah "object slicing" yang bisa memotong informasi exception kalau tipe aslinya adalah turunan dari std::exception.