3.10 İstisnalar (Exceptions)

C++ programlama dilinde, istisnalar (exceptions), bir program çalışırken beklenmeyen durumlarla başa çıkmanın bir yolunu sunar. İstisnalar, programın akışını kontrol etmeyi ve hataların yönetimini sağlamayı mümkün kılar. Bu, programların daha güvenilir ve hatalardan daha az etkilenir hale gelmesine yardımcı olur.

İstisna Nedir?

İstisna, bir hata durumunu temsil eden bir nesnedir. Bir programda beklenmedik bir durum meydana geldiğinde, bir istisna "fırlatılır" (thrown) ve bu durumun nasıl ele alınacağı belirlenebilir. C++ dilinde istisnalar genellikle try, catchve throw anahtar kelimeleri ile yönetilir.

Temel İstisna Yönetimi

  1. try Bloğu: İçinde bir hata olabileceğini düşündüğünüz kodu sarmalar. Eğer hata meydana gelirse, kontrol catchbloğuna geçer.

  2. catch Bloğu: try bloğundaki kodda bir istisna fırlatıldığında, bu bloğun çalıştırılacağı yerdir. Burada istisnanın türüne göre uygun işlem yapılır.

  3. throw Anahtar Kelimesi: Hata durumunda bir istisna fırlatmak için kullanılır.

Örnek Kullanım

Aşağıda, C++'da istisna yönetiminin nasıl kullanılacağını gösteren basit bir örnek bulunmaktadır.

#include <iostream>
#include <stdexcept> // std::runtime_error için
using namespace std;

double bolme(double a, double b) {
    if (b == 0) {
        throw runtime_error("Bölme hatası: Bir sayı sıfıra bölünemez."); // İstisna fırlatma
    }
    return a / b;
}

int main() {
    double sayi1, sayi2;

    cout << "Bir sayı girin: ";
    cin >> sayi1;
    cout << "Bölmek için bir sayı girin: ";
    cin >> sayi2;

    try {
        double sonuc = bolme(sayi1, sayi2); // try bloğunda işlem
        cout << "Sonuç: " << sonuc << endl;
    } catch (const runtime_error& e) { // catch bloğunda hata yönetimi
        cout << "Hata: " << e.what() << endl; // Hata mesajını yazdır
    }

    return 0;
}

Önemli Noktalar

  • İstisna Türleri: C++'da birçok yerleşik istisna türü vardır (örneğin, std::runtime_error, std::out_of_range, vb.). Kendi istisna türlerinizi de tanımlayabilirsiniz.

  • Hata Yönetimi: try-catch yapısı, hata meydana geldiğinde programın çökmesini önler ve hataların yönetilmesini sağlar.

  • Performans: İstisnaların kullanımı, kodun daha karmaşık hale gelmesine neden olabilir, bu nedenle dikkatli kullanılmalıdır.

Sonuç

C++ dilinde istisnalar, programcıların hataları yönetmesine ve daha sağlam kod yazmasına olanak tanır. İstisna yönetimi, yazılım geliştirme sürecinde önemli bir yer tutar ve programların daha güvenilir hale gelmesine yardımcı olur.

Last updated