C++ Deneyin-Yakalayın-Nihayet

C Deneyin Yakalayin Nihayet



C++, istisnaları ele almak için 'try-catch' yöntemini sağlar. C++ programında bir istisna oluştuğunda, bu 'try-catch' yöntemleri, kontrolün program kodunun bir kısmından diğerine kaydırılmasına yardımcı olur. Bir istisna, program çalışırken ortaya çıkan bir aksaklıktır. Bir program çalışırken sıfıra bölmeye çalışmak gibi olağanüstü bir durum oluştuğunda, C++ istisnası ortaya çıkar ve bu durumu kodlarımızda basitçe “try-catch” yöntemini kullanarak hallederiz. Üç anahtar kelime içerir: “dene”, “yakala” ve “at”. “Throw” anahtar sözcüğü, istisnayı diğer kodun bölümlerine atmak için kullanılır. C++ programlaması “finally” anahtar sözcüğüyle işimizi kolaylaştırmıyor ancak C++ kodlarında “try”, “catch” ve “throw” anahtar sözcüklerini kullanabiliriz.

Örnek 1:

Çeşitli fonksiyonların bildirildiği başlık dosyası olan “iostream” buraya dahil edilmiştir. Bu başlık dosyasında bildirilen bu fonksiyonları kodumuzda kullanıyoruz, dolayısıyla bu başlık dosyasını da dahil ediyoruz. Bundan sonra elimizde “cin” ve “cout” gibi fonksiyonlar da tanımlandığı için buraya yerleştirilen “std” var. Kodumuzun başına “namespace std”yi eklersek, tüm bu işlevlerle birlikte “std” yazmamıza gerek kalmaz. Bundan sonra burada C++ programının sürücü kodu olarak da adlandırılan “main()” fonksiyonu çağrılır.

Daha sonra burada “my_num1”i “35” değeriyle başlattığımız “try” anahtar kelimesini kullanıyoruz. Buradaki “int” veri tipi değişkenidir. Şimdi bu değişkeni “if” içerisine yerleştirip “my_num1”in “98”den büyük veya ona eşit olması gerektiğini söyleyen bir koşul koyuyoruz. Eğer verilen koşul sağlanmışsa “if” içerisinde ilerleyerek burada yazılan ifadeyi çalıştırır. “Cout”u kullanırız ve koşul sağlandığında görüntülenecek bir mesaj ekleriz.







Bundan sonra “else” kelimesini yerleştirdikten sonra “throw” anahtar kelimesini kullanıyoruz. Bu “throw” anahtar sözcüğünde parametre olarak “my_num1”i geçiyoruz. Bunun altına “catch” kısmını ekliyoruz. “catch()”ın parametresi olarak “my_num2”yi ekleyip bu “catch” kısmının içine tekrar “cout”u kullanıyoruz. Bu bölüm yalnızca “try” bölümünde bir istisna oluştuğunda yürütülür.



Kod 1:



#include
kullanarak ad alanı std ;
int ana ( ) {
denemek {
int benim_num1 = 35 ;
eğer ( benim_num1 >= 98 ) {
cout << 'Erişim burada verildi.' ;
} başka {
fırlatmak ( benim_num1 ) ;
}
}
yakalamak ( int benim_num2 ) {
cout << 'Erişim burada reddedildi.' << sonunda ;
cout << 'Numara:' << benim_num2 ;
}
geri dönmek 0 ;
}

Çıktı:
Girdiğimiz sayı “98”den küçük olan “35”tir. Yani burada istisna oluşur ve “catch()” kısmı görüntülenir. “Dene” kısmına erişim reddedildi.





Örnek 2:

Buraya “iostream” başlık dosyasını ve “namespace std”yi yerleştiriyoruz. Daha sonra “int” veri tipinin “pay” ve “payda”sı olan iki parametreyi yerleştirdiğimiz “division()” fonksiyonunu oluşturuyoruz. Bu “bölme” fonksiyonunun veri tipini “double” olarak ayarladık.



Bunun altına paydanın sıfıra eşit olması koşulunu eklediğimiz “if()” ifadesini ekliyoruz. Bundan sonra “throw” anahtar kelimesini kullanıp oraya bir mesaj yazıyoruz. Bu mesaj, duruma göre bu kodda istisna oluştuğunda oluşturulur. Bunun altında “pay/payda”yı yerleştirdiğimiz “return” anahtar kelimesini kullanıyoruz. Yani bölme sonucunu döndürür. Şimdi “main()” fonksiyonu çağrıldı.

Bundan sonra “num1” ve “num2”, “int” değişkenleri olarak başlatılır ve bunlara sırasıyla “89” ve “0” atanır. Daha sonra “double” veri tipinin “sonucunu” başlatıyoruz. Burada “try” anahtar sözcüğünü kullanıyoruz. Bu kısımda bu “result” değişkenini ekliyoruz ve bu değişkene “division()” fonksiyonunu atadık. Bu fonksiyona iki parametre aktarıyoruz: “num1” ve “num2”. Bunun altında “division()” fonksiyonunu uyguladıktan sonra elde ettiğimiz “sonucu” görüntülüyoruz. Bundan sonra yine “catch” komutunu kullanarak daha önce eklediğimiz mesajın görüntülenmesi için “const char* msg” komutunu yerleştiriyoruz.

Kod 2:

#include
kullanarak ad alanı std ;
çift bölüm ( int pay, int payda ) {
eğer ( payda == 0 ) {
fırlatmak 'Burada sıfıra bölmek mümkün değil!' ;
}
geri dönmek ( pay / payda ) ;
}
int ana ( ) {
int sayı1 = 89 ;
int sayı2 = 0 ;
çift sonuç = 0 ;
denemek {
sonuç = bölüm ( sayı1, sayı2 ) ;
cout << sonuç << sonunda ;
} yakalamak ( yapı karakter * mesaj ) {
kesin << mesaj << sonunda ;
}
geri dönmek 0 ;
}

Çıktı:
Daha önce payda olarak eklediğimiz sayı “0”dır. Yani kodda istisna oluşur ve verilen mesajı görüntüler.

Örnek 3:

Burada “int” veri tipinin parametreleri olarak “değer” ve “çarpan”ı yerleştirdiğimiz “çarpma()” fonksiyonu oluşturuluyor. Daha sonra sıfıra eşit bir çarpan koşulu eklediğimiz 'if' ifadesini kullanırız. Daha sonra ifade eklediğimiz yere “throw” konulur. Daha sonra daha önce bildirdiğimiz “değer * çarpan” değişkenlerini yerleştirdiğimiz “return” işlemimiz oluyor. Yani burada çarpma sonucunu döndürür.

Bundan sonra “main()” diyoruz ve burada “int değer1” ve “int değer2”yi sırasıyla “34” ve “0” değerleriyle bildiriyoruz. Burada “int m_res” de bildirilir ve ardından “çarpma()” işlevi olarak adlandırılır. Bu fonksiyonu gerçekleştirdikten sonra sonuç artık “m_res” değişkenine kaydediliyor ve ardından görüntüleniyor. Daha sonra “catch” fonksiyonunu kullanarak daha önce “throw” kısmına eklediğimiz mesajın görüntülenmesi için “const char* msg” komutunu ekliyoruz.

Kod 3:

#include
kullanarak ad alanı std ;
çift çarpma işlemi ( int değer , int çarpan ) {
eğer ( çarpan == 0 ) {
fırlatmak 'Değeri sıfırla çarpmayız!' ;
}
geri dönmek ( değer * çarpan ) ;
}
int ana ( ) {
int değer1 = 3. 4 ;
int değer2 = 0 ;
int m_res ;
denemek {
m_res = çarpma işlemi ( değer1, değer2 ) ;
cout << m_res << sonunda ;
} yakalamak ( yapı karakter * mesaj ) {
kesin << mesaj << sonunda ;
}
geri dönmek 0 ;
}

Çıktı :
Daha önce girdiğimiz değerin çarpanı “0” olduğundan, kodun burada bildirimin görüntülenmesine neden olan bir istisnası vardır.

Örnek 4:

Burada “multiply()” fonksiyonunu kuruyoruz ve “int” veri tipinin parametreleri olarak “number1” ve “number2”yi aktarıyoruz. Daha sonra, sıfırdan küçük veya sıfıra eşit bir çarpan olan bir koşulu eklemek için 'if' operatörünü kullanırız. Daha sonra “fırlatma”nın olması gereken yere ibare eklenir. Daha sonra çarpma sonucu daha önce bildirdiğimiz “sayı1 * sayı2” değişkenini eklediğimiz “return” kısmına döndürülür.

Daha sonra “main()” fonksiyonunu çağırıp “int newNumber1” ve “int newNumber2”ye sırasıyla “34” ve “12” değerlerini atadık. Burada “int mResult” bildiriminden sonra “multiply()” fonksiyonu çağrılmaktadır. Artık bu fonksiyonun sonucu “mResult” değişkeninde saklanıyor ve aşağıdaki şekilde işleniyor. Daha sonra “catch” fonksiyonunu kullanıp “const char* msg” ekleyerek “throw” kısmına yazdığımız mesajı ekrana getiriyoruz.

Kod 4:

#include
kullanarak ad alanı std ;
çift çarpmak ( int 1 numara , int 2 numara ) {
eğer ( 2 numara <= 0 ) {
fırlatmak 'Değeri sıfır veya negatif değerle çarpmayız!' ;
}
geri dönmek ( 1 numara * 2 numara ) ;
}
int ana ( ) {
int yeniNum1 = 3. 4 ;
int yeniNum2 = 12 ;
int mSonuç ;
denemek {
mSonuç = çarpmak ( yeniNum1, yeniNum2 ) ;
cout << 'Çarpmanın sonucu' << mSonuç << sonunda ;
}
yakalamak ( yapı karakter * mesaj ) {
kesin << mesaj << sonunda ;
}
geri dönmek 0 ;
}

Çıktı:
Eklediğimiz değer, koşulu eklediğimiz “12”dir. Yani koşul doğru olmadığı için “multiply()” fonksiyonu gerçekleştirilir. Çarpmanın sonucu görüntülenir. Burada “dene” kısmı yürütülür.

Çözüm

Bu kılavuzda “dene-yakala” kavramı ve kodlar ayrıntılı olarak incelenmiştir. Bu 'dene-yakala' kavramını kapsamlı bir şekilde araştırdık ve C++ programlamada nasıl çalıştığını gösterdik. Benzersiz kodumuzu yazmamızı sağlayan bir hata bulunduğunda “throw” teriminin bir istisna oluşturduğunu tanımladık. “catch” ifadesini kullanarak “try” kısmında bir istisna çıkması durumunda çalıştırılacak kod bloğunu belirtebiliriz.