CodeBlanks Logo Icon CodeBlanks

Özet - İstisnalar

try/catch ve özel istisnayı birleştirerek bir banka hesap sınıfı yazarsın.

Özet: Banka hesabı

Bu özette try/catch, throw ve özel istisnayı birleştirerek küçük bir banka hesap sınıfı kuracağız. Account sınıfı deposit ve withdraw metotlarını içerir; bakiye yetersizse InsufficientFunds istisnası fırlatılır.

Adım şu: önce InsufficientFunds sınıfını std::exception'dan türet, sonra Account sınıfını balance üyesiyle tanımla. withdraw metodu, tutar bakiyeyi aşarsa istisna fırlatır; çağıran kod bunu try/catch ile yakalar ve e.what() ile mesajı okur. Böylece istisna araçlarını gerçek bir senaryoda birleştirmiş olursun.

Uygulama InsufficientFunds ve withdraw

#include <stdexcept> ekle. class InsufficientFunds : public std::exception tanımla; public: bloğunda const char* what() const noexcept override { return "yetersiz bakiye"; } yaz. main içinde try { throw InsufficientFunds(); } catch (const std::exception& e) { cout << e.what() << endl; } ekle.

Başlangıç kodu

main.cpp
#include <iostream>
#include <stdexcept>
using namespace std;

// InsufficientFunds sınıfını tanımla

int main() {
    // try içinde fırlat, catch ile mesajı yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <stdexcept>
using namespace std;

class InsufficientFunds : public std::exception {
public:
    const char* what() const noexcept override {
        return "yetersiz bakiye";
    }
};

int main() {
    try {
        throw InsufficientFunds();
    } catch (const std::exception& e) {
        cout << e.what() << endl;
    }
    return 0;
}

Beklenen çıktı

yetersiz bakiye

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Aracı göreviyle eşleştir

Kavram Anlamı
try riskli işlem
throw istisna fırlatır
InsufficientFunds özel istisna

2 withdraw metodu bakiye yetersizse ne yapmalı?

  • Çökertir
  • InsufficientFunds fırlatır Doğru cevap
  • 0 döndürür
  • Yoksayar

Açıklama: Yetersiz bakiyede InsufficientFunds fırlatılır.

3 Boşluğu doldur: türetme

Soru
class InsufficientFunds : public ____ {
public:
    const char* what() const noexcept override;
};
Cevap
class InsufficientFunds : public std::exception {
public:
    const char* what() const noexcept override;
};

Açıklama: std::exception temel sınıf olarak kullanılır.

Başlangıç bölümündeki tüm dersler