Hata yakalamadan, kasıt çalışma anında beklenmeyen durumların oluşumunu yakalayabilmektir. Bu tür hatalar yakalanmadığı zaman programın çökmesine neden olabilir. Hata oluşumunda bu hatanın fırlatılması ve try catch blokları yardımıyla fırlatılan hataların yakalanması gerekir. C++ programlama diline bakıldığında standart kütüphanelerin birçoğu hata fırlatmaz. Dolayısıyla hata fırlatılmadığı için yakalanamayacaktır. Bundan dolayı C++ programlama dilinde hata sınıflarını programcıların kendileri yazması gerekmektedir. Veri yapıları dersi kapsamında ileri ki konularda sıkça karşınıza çıkacak olan bu hata yakalama konusunu iyi anlamak gerekmektedir. Örneğin bir yığıtta eleman kalmadığı zaman pop mesajının çağrılması hata mesajının fırlatılmasını gerektirmektedir. Adım adım bunun nasıl yapılacağı aşağıda verilmiştir. Önce bir hata sınıf yazılır. class Hata{ private: string mesaj; public: Hata :mesaj string Mesaj }; Yukarıdaki hata sınıf incelendiğinde, alt alan olarak hatanın ne olduğunu tutan hata mesajı ve bu mesaja erişebilmek için Mesaj fonksiyonu bulunmaktadır. Çok sık karşılaşılabilen sıfıra bölünme hatasını göstermek için yukarıda yazılmış olan Hata sınıfından kalıtlayarak yeni bir sınıf tanımlanır. class SifiraBolunme : public Hata{ public: SifiraBolunme :Hata }; Sıfıra bölünme sınıfının yaptığı tek şey yapıcı metodunda almış olduğu mesajı Hata sınıfına iletmektir. Bu hata fırlatma aşağıdaki örnekte nasıl kullanıldığı gösterilmektedir. #include "SifiraBolunme. hpp" int main { try catch return 0; } Yukarıdaki örnekte y değeri sıfır geldiği anda hata fırlatılmaz ise sıfıra bölünme hatasından dolayı program çökecektir. Ama yukarıdaki örnekteki gibi hata fırlatıldığı için sıfıra bölünme hata mesajı ekrana gelecektir. Örneğin aşağıdaki diğer bir örnekte, Sayidizisi sınıfı tanımlanmış bu 3 adet sayıyı dizide tutan bir sınıf. Sahip olduğu getir fonksiyonu sayesinde parametre ile verilen indeksteki değeri döndürüyor. Fakat burada dizi boyutundan daha büyük veya negatif bir sayı girildiğinde dizi sınırları dışında şeklinde bir hata fırlatılması gerekiyor. İşte bunun için Tasma isimli bir sınıf yine hata sınıfından kalıtlıyor. Hata fırlatma işlemi doğal olarak Getir metodunun içinde yapılıyor. class Tasma : public Hata{ public: Tasma :Hata }; class SayiDizisi{ private: int x ; public: SayiDizisi SayiDizisi(int x1, int x2, int x3) int Getir }; int main { SayiDizisi dizi = new SayiDizisi(24,85,120); try catch delete dizi; return 0; }

Elinize sağlık güzel paylaşım ama daha temelden başlayıp bir yazı dizisi şeklinde ileri seviye konulara ulaşmanız daha faydalı olacaktır