Cerr C++ Örnekleri

Cerr C Ornekleri



C++ programlama ile çalışmak zorunda kaldığımızda hatalarla yüzleşmek zorunda kaldığımızda farklı durumlarla karşılaşabiliriz. Bu hatayı görüntülemek için C++'daki “cerr” anahtar kelimesini kullanıyoruz. C++'da hata mesajını yazdırmak için “cerr” nesnesini kullandığımızı söyleyebiliriz. “iostream” başlık dosyası bu nesnenin bildirimini içerir. Konsola girdiğimiz hatayı veya detayı görüntülemek için “<<” ekleme simgeleriyle birlikte kullanılır. Bu kılavuzda bu “cerr” nesnesini detaylı olarak öğreneceğiz.

Örnek 1:

“iostream”, kodumuzdaki “cin” veya “cout” yöntemlerini kullanabilmemiz için buraya yerleştirdiğimiz, her iki yöntem de içinde bildirildiği için başlık dosyasıdır. Bu başlık dosyasında “cerr” nesnesi de bildirildi. Daha sonra “std ad alanına” sahibiz. Artık bu “std”yi her fonksiyona ayrı ayrı eklememize gerek yok.

Daha sonra burada “main()” çağrılır. Bunun altında “cerr” nesnesini kullanarak konsolda göstermek istediğimiz hata mesajını yerleştiriyoruz. “Burada bir hata oluştu!” yazıyoruz. ekleme sembollerini yerleştirdikten sonra bu “cerr” mesajına yazın. Bu programı çalıştırdığımızda “cout” kullanılmadan verilen mesaj görüntüleniyor.







Kod 1:

#include

ad alanı std'sini kullanma ;

int ana ( ) {

kesin << 'Burada bir hata oluştu!' << sonunda ;

geri dönmek 0 ;

}

Çıktı:



Aşağıdaki şekilde görüntülenen bu sonuçta artık “cerr <<” yerleştirdikten sonra yazdığımız mesaj görüntüleniyor:







Örnek 2:

Hem “cin” hem de “cout” yöntemlerinin yanı sıra “cerr” de “iostream” başlık dosyasının içinde deklare edildiğinden kodumuzda kullanabilmek için başlık dosyasını buraya ekliyoruz. Bundan sonra “std ad alanımız” var. Bunun altında “main()” çağrılır. “string” veri tipinin “error_str[]”sini başlatıyoruz ve “error_str[]”e bir mesaj atadık. Daha sonra hata mesajını yerleştireceğimiz “cerr” nesnesini kullanıyoruz ve bu “error_str”yi iletiyoruz. Yani bu programı çalıştırdığımızda her iki mesajı da işler.

Kod 2:

#include

ad alanı std'sini kullanma ;

int ana ( ) {

karakter error_str [ ] = 'Buradaki dizeyi okuyamayız!' ;

kesin << 'Hata oluştu : ' << error_str << sonunda ;

}

Çıktı:



Artık sonuçta “cerr <<” yazdıktan sonra yazdığımız metin ve “error_str” içerisine eklediğimiz mesaj da görünüyor. Sonuç ayrıca aşağıda gösterilmiştir:

Örnek 3:

Başlık dosyasını ekledikten ve ardından “std” ad alanını yerleştirdikten sonra “main()” yöntemini çağırıyoruz. Bundan sonra “NumOfLine” tamsayı değişkeni burada deklare edilir ve “__LINE__” ile başlatılır. Bu “__LINE__” hata mesajlarını üretir. Bunun altına “cerr” nesnesini kullanarak kullanıcıya göstermek istediğimiz hata mesajını yerleştiriyoruz. Ayrıca hatanın oluştuğu satır numarasını gösteren “NumOfLine” değişkenini de kod içerisine yerleştiriyoruz.

Kod 3:

#include

ad alanı std'sini kullanma ;

int ana ( ) {

int Satır Sayısı = __ASTAR__ ;

kesin << 'Burada satırda hata oluştu: ' << Satır Sayısı ;

geri dönmek 0 ;

}

Çıktı:

Burada kodun dördüncü satırına “__LINE__” eklediğimiz için hatanın “4” satırında oluştuğunu gösteriyor. Bu mesaj burada C++'daki “cerr” nesnesinin yardımıyla görüntülenir.

Örnek 4:

Bir başlık dosyası daha ekliyoruz: “fstream”. Bu 'fstream' başlık dosyası, 'ofstream' ve 'ifstream' öğelerinin birleşimi olduğu için C++'da bir dosyayı okumak, yazmak veya oluşturmak için kullanılır. Şimdi “std namespace”i ekleyip “main()”ı çağırdıktan sonra “fstream”i “new_file” değişkeniyle birlikte kullanıyoruz.

Daha sonra burada “new_file” ile birlikte “open()” fonksiyonunu kullanıp parametre olarak dosyanın adını geçiyoruz. Açmak istediğimiz dosyanın adı “myTextFile.txt”. Bunun altında “new_file” değişkenini iletmek için “if” kullanıyoruz. Artık dosya burada açılırsa “if”ten sonraki ifade işlenir. Aksi takdirde, hata mesajını göstermek için “cerr” nesnesini eklediğimiz yerde “else”den sonraki ifade işlenir.

Kod 4:

#include

#include

ad alanı std'sini kullanma ;

int ana ( ) {

fstream yeni_dosya ;

yeni dosya. açık ( 'metin dosyam.txt' ) ;

eğer ( yeni dosya ) {

cout << 'Dosya burada başarıyla açıldı!' ;

}

başka {

kesin << 'Dosyayı burada açarken burada hata oluştu!' ;

}

geri dönmek 0 ;

}

Çıktı:

Daha önce sağladığımız dosyayı açamıyoruz. Burada “cerr” nesnesinden sonra eklediğimiz hata mesajını gösteriyor.

Örnek 5:

Burada başka bir dosya açmak istiyoruz. Böylece hem başlık dosyalarını hem de “std” ad alanını ekliyoruz. Şimdi “main()” diyoruz ve ardından “fstream”i “t_file” değişkeniyle kullanıyoruz. Daha sonra, bu örnekte “open()” fonksiyonunu “new_file” ile kullanıyoruz ve dosya adını argüman olarak sağlıyoruz. Açmak istediğimiz dosyanın adı “New.txt”. “t_file” değişkenini ileterek “if” ifadesini kullanıyoruz. Artık dosya açılırsa “if” ifadesinin ardından gelen satır işlenir. Değilse, hata mesajı görüntülemek için “cerr” nesnesini eklediğimiz “else” ifadesinin ardından gelen ifade render edilir.

Kod 5:

#include

#include

ad alanı std'sini kullanma ;

int ana ( ) {

fstream t_file ;

t_file.t_file. açık ( 'Yeni.txt' ) ;

eğer ( t_dosyası ) {

cout << 'Dosya Burada Açıldı!' ;

}

başka {

kesin << 'Hata oluştu!' ;

}

geri dönmek 0 ;

}

Çıktı:

Sağladığımız dosya açılamıyor. Yani “cerr” nesnesinden sonra eklediğimiz hata mesajı aşağıdaki şekilde görüntüleniyor:

Örnek 6:

Kodumuzda oluşabilecek hataları kontrol etmek için kullanacağımız “istisna” başlık dosyasını buraya ekliyoruz. Aşağıda “6” boyutunda “new_array” isimli tamsayı tipinde bir dizi başlatıyoruz. Daha sonra “int” değişkeninin “new_index” değerini ayarlayıp buraya “7” atadık. Şimdi ayrıca “new_size” değişkenini başlatıyoruz ve “*(&new_arr + 1) – new_arr”ı “new_size” değişkenine atadık.

Bundan sonra hataları kontrol etmek ve hata mesajını atmak için kullanılan “try”, “throw” ve “catch” komutlarını kullanıyoruz. “throw” anahtar kelimesinden sonra eklediğimiz hata mesajını gösteren “color” nesnesini kullanıyoruz.

Kod 6:

#include

#include

ad alanı std'sini kullanma ;

int ana ( ) {



int yeni_arr [ 6 ] = { 1 , 9 , 4 , 3 , 8 , 7 } ;

int yeni_index = 7 ;



int yeni_boyut = * ( & yeni_arr + 1 ) - yeni_arr ;

denemek {

eğer ( yeni_index < 0 || yeni_index >= yeni_boyut ) fırlatmak ( 'Endeks Aralıkta değil. Burada Aralık Dışında' ) ;



başka

cout << yeni_arr [ yeni_index ] ;



}

yakalamak ( yapı karakter * hata ) {

kesin << hata ;

}

geri dönmek 0 ;

}

Çıktı:

Burada “Index”in aralık dışında olduğunu gösteren bir hata mesajı veriyor ve “cerr” nesnesini kullanarak bu hatayı alıyoruz.

Örnek 7:

Burada bir sayıyı sıfıra böldüğümüzde oluşabilecek hatayı kontrol ediyoruz. “int” veri tipinde “a1” ve “a2” olmak üzere iki değişkeni ilettiğimiz bir “d()” fonksiyonu oluşturuyoruz. Bunun altına “a2==0” koşulunu geçtiğimiz “if”i ekliyoruz. “a2” değeri sıfır ise kod içerisine “cerr” nesnesini yerleştirerek elde ettiğimiz “throw”dan sonra koyduğumuz mesaj yürütülür.

Bundan sonra “a2” değeri sıfır değilse bölümün cevabını döndüren “return”u yerleştiriyoruz. Şimdi “main()”i çağırıyoruz ve “87”yi “x”e bir “int” değişkeni olarak başlatıp atadık. Bundan sonra “b” ve “d_res” değişkenlerini de “0” ile başlatıyoruz. Buraya hatayı yakalayan “try” ve “catch” tuşlarını yerleştiriyoruz ve “throw” anahtar kelimesinden sonra eklediğimiz hata mesajını “cerr” atıyor.

Kod 7:

#include

ad alanı std'sini kullanma ;

int benim_bölümüm ( int a1 , int a2 ) {

eğer ( a2 == 0 ) {

fırlatmak 'Sıfıra bölmek mümkün değildir!' ;

}

geri dönmek ( a1 / a2 ) ;

}

int ana ( ) {

int X = 87 ;

int Ve = 0 ;

int d_hiçbir şey = 0 ;

denemek {

d_hiçbir şey = benim_bölümüm ( X , Ve ) ;

cout << d_hiçbir şey << sonunda ;

} yakalamak ( yapı karakter * mesaj ) {

kesin << mesaj << sonunda ;

}

geri dönmek 0 ;

}

Çıktı:

Burada sayıyı “0”a bölmek istediğimizi ifade eden hata mesajı çıkıyor ki bu mümkün değil.

Çözüm

Burada “cerr” nesnesi detaylı olarak incelenmiştir. C++ programlamada “cerr” nesnesinin hata mesajının görüntülenmesine nasıl yardımcı olduğunu tanımladık. Hatanın oluştuğu birçok koşulu yerleştirdiğimiz birden fazla örneği inceledik. Ayrıca try-catch metodunu dosya açılış koduna yerleştirdikten sonra “cerr” nesnesini de kullandık. Kodu ve “cerr”in hata mesajı gösterdiği sonucu gösterdik.