Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  Doğru olması gereken boolean ifadeleri parametre olarak kendisine verdiğimiz fonksiyon. Eğer ifade doğru ise bir şey olmaz ama yanlışsa assert'in görevi programı abort edip, programcıyı dosya ismi ve satır numarasıyla bu hata kaynağından haberdar etmektir.

Değişik varyasyonları vardır. Örneğin C'de kullanılan eski versiyonlarından birinde assert fonksiyonu yanlış bir ifade ile karşılaşınca hata mesajıyla programı sonlandırır. Hataya sebep olan assert fonksiyonunun hangi dosyanın, hangi satırında olduğu çıktıya yazılır. Aslında hata henüz oluşmamıştır. Ama hataya sebep olabilecek durum bir boolean ifade ile assert fonksiyonuna tanıtıldığından hata oluşmadan önce yakalanabilmiştir.

Bu test modelinin şöyle bir felsefik nedeni vardır. Programcılar kodlarını yazarken bazı durumlarda kodlarını bir takım varsayımların üzerine bina ederler. Örneğin bir dosyanın her zaman var olduğuna güvenerek dosyanın var olup olmadığını kontrol etmezler. Direk dosya üzerinde işlem yapan kodu yazarlar. Başlangıçta zararsız görünen bu tutum proje büyüdükçe hata riski olan kodların artmasına ve bunların takibinin güçleşmesine yol açar. Bu problemi çözmenin yolu şudur: Her ne zaman bir varsayımda bulunuyorsanız bunu kodunuzda açıkça belirtiniz. Nasıl? Assert fonksiyonuyla, yani şöyle:

assert(file.Exists());
// open file
// do something turning & burning on the file

Yukarıda dosyanın var olduğu varsayımımızı açıkça belirtmiş olduk. Programın geliştirme sürecinde bu varsayım belirteçleri bizi bir çok bilinmez hatadan kurtarır. Release moduna geçtiğiniz zaman derleyiciniz assert kodlarını projeden çıkaracaktır.

C# da Debug sınıfını bu tür işler için kullanabilirsiniz. C'de assert.h başlık dosyasına bakınız.
fizikci
21 Şubat 2006 15:32 ~ 12 Mart 2006 13:05
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1093 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen