C++'da İstisnaları Kolayca Nasıl Ele Alırsınız?

C Da Istisnalari Kolayca Nasil Ele Alirsiniz



Program çalışırken meydana gelen beklenmeyen olaylara istisna veya hata adı verilir. İstisnalar çalışma zamanında meydana gelir ve derleme sırasında yakalanamadığı için programda ciddi sorunlara neden olabilir. Bir C++ programında istisnaları iyi bir şekilde ele almak, bir programcının istenen sonuçları elde etmesi için temel hedeftir.

C++'da İstisnaları Kolayca Nasıl Ele Alırsınız?

C++'da İstisna İşleme, geçersiz girişlerin işlenmesi, bölme işlemlerinde bir sayının sıfıra bölünmesi ve daha pek çok şey gibi çalışma zamanı hatalarını algılama ve bunları verimli bir şekilde işleme mekanizmasını ifade eder.

C++'da İstisna İşleme üç anahtar kelimeyi içerir: try, throw ve catch. Try ifadesi, kullanıcının kodda bir istisna oluşturabilecek kod bloğunu tanımlamasına olanak tanır. throw anahtar sözcüğü, try anahtar sözcüğünün altındaki bloğu kontrol ettikten sonra algılanırsa bir istisna atar. Catch anahtar sözcüğü, try bloğunda gözlemlenen istisnayı işleyebilecek kod bloğunu içerir.







Örnek 1: Bölme Sırasında İstisna İşleme

Kod, bölme sırasındaki istisnaları kontrol etmek için yazılmıştır.



#include
kullanarak ad alanı std ;

int ana ( ) {

çift pay, payda, bölme ;

cout << 'Bir pay değeri girin: ' ;
yemek yiyor >> pay ;

cout <> payda ;

denemek {


eğer ( payda == 0 )
fırlatmak 0 ;


bölüm = pay / payda ;
cout << pay << '/' << payda << ' = ' << bölüm << sonunda ;
}

yakalamak ( int sayı_istisna ) {
cout << 'Hata! Bölen olamaz  ' << sayı_istisna << sonunda ;
}

geri dönmek 0 ;
}

Bu programda kullanıcı main() bölümünde bildirilen pay ve paydanın değerini girer. Try bloğunda, paydanın sıfır olup olmadığı şeklindeki istisnayı kontrol etmek için bir if ifadesi kullanılır. Paydanın 0 olması durumunda sıfır bölenle bölme işlemi yapılamadığından, bir istisna atacak ve basit bölme işlemi gerçekleştirilmediği takdirde catch bloğu bir hata argümanı döndürecektir.







Kullanıcı bir pay 42 ve paydaya bir 0 girer, bu bir istisna atar, böylece program hata argümanını döndürür.



Kullanıcı payda olarak pay 42 ve 2'yi girer, herhangi bir istisna bulunmadığından bölme işleminden sonraki sonuç döner.

Örnek 2 Yaşı Kontrol Etmek İçin İstisna İşleme

Bu program kullanıcının yaşındaki istisnaları kontrol eder.

#include
kullanarak ad alanı std ;

/*
Burada eğer kişinin yaşı 18'den küçükse istisna (istisna olarak yaş) atmak istiyoruz.
*/

int ana ( )
{
// try bloğunda yaşın 18'den büyük olup olmadığı kontrol ediliyor.
denemek
{
int yaş ;
cout << 'Erişim için yaşınızı girin: ' ;
yemek yiyor >> yaş ;

eğer ( yaş >= 18 )
{
cout << 'Erişim izni.' ;
}
// yaş 18'in altındaysa özel istisna atılıyor.
başka
{
fırlatmak ( yaş ) ;
}
}
// atılan istisnayı yakalamak ve istenen çıktıyı görüntülemek (erişim reddedildi!)
yakalamak ( int X )
{
cout << 'Erişim reddedildi! Reşit değilsiniz.' << sonunda ;
}
geri dönmek 0 ;
}

Bu programda tam sayı değerine sahip bir değişken tanımlanır. Kullanıcıdan yaşı girmesi istenir ve kullanıcının yaşının 18'den büyük veya eşit olup olmadığını kontrol etmeyi denemesi istenir. Eğer bu doğru değilse bir istisna atar ve istisna bloğu Erişim reddedildi sonucunu döndürür! Argüman. Aksi halde erişim verilecektir.

Kullanıcı, erişim iznini kontrol etmek için yaşı 12 olarak girer, çünkü bu yaş 18'in altındadır, dolayısıyla Erişim reddedildi argümanı döndürülür.

Kullanıcı 20 yaşını girer, çünkü bu 18'in üzerindedir, dolayısıyla kullanıcıya erişim izni verilir.

Not : Programda catch bloğu yoksa program anormal davranacak ve istisnai durumlarda beklenmedik şekilde sonlandırılacaktır.

Çözüm

C++'da İstisna İşleme, çalışma zamanı hatalarını tespit etme ve bunları verimli bir şekilde işleme mekanizmasını ifade eder. Try, throw ve catch olmak üzere üç anahtar kelime içerir. Try bloğundaki kod için istisna kontrol edilir, throw anahtar sözcüğü, bulunursa istisnayı atar ve catch bloğu, try bloğu için atılan istisnayı işler. İstisnaların ele alınması, çalışma zamanı hatalarını önleyerek kullanıcı deneyiminin sorunsuz ve mükemmel olmasını sağlar.