Ders
6: Hata Denetimi
I. Hata Denetimi Hata denetimi (troubleshooting) programda oluşan çalışma
zamanı ve diğer kodlama hatalarının tanımlanması (teşhis) ve giderilmesi
için yapılan çalışmalardır. Visual Basic, programların yazılması (derlenmesi ve
çalıştırılması) sırasında karşılaşılan hatalara karşı geliştirilmiş
bir hata bulma ve düzeltme (debugging) olanağına sahiptir. Programın çalıştırılması sırasında kendisinden kaynaklanan
bir hata varsa, hata bildirilir. Bunun dışında çalışma zamanı hataları
ise, programın çalışması sırasında beklenmeyen bir durum sonucu oluşur.
Örneğin okunacak dosyanın olmaması gibi. Bu durumda program hata verir.
İşte bu durumlara karşı alınan önlemlere hata denetimi denir. A. Çalışma Zamanı Hatalarının Kontrolü Çalışma zamanı hataları (run-time errors) programın çalışması sırasında oluşan hatalardır. Program hazırlanmış ve kullanıcıya sunulmuştur. Çalışma zamanı (run-time) hatalarına karşı herhangi
bir önlem alınmazsa program hata verir ve kesilir. Diğer bir açıdan;
bu durum kullanıcılar karşısında düşülebilecek en kötü durumlardan birisidir.
Bu nedenle çalışma zamanı hatalarına karşı belli önlemler daha önceden
alınmalıdır. Bu hatalar 1-1000 arasında hata kodu döndürürler.
Bu hata kodları On Error deyimi ve Err nesnesi ile birlikte
ele alınarak hataların değerlendirilmesi ve programın uygun biçimde
yönlendirilmesi sağlanır. Tablo: Kontrol edilebilir bazı hatalar
Hata oluşumunda; mesaj vermek ve programın kontrolünü
sağlamak için belli bir program parçasının işletilmesini sağlanabilir.
Bu işlem için hata kontrolüyle ilgili olarak bir program bloğunun yazılmasını
sağlanır. Yapısı: On Error GoTo satır
Eğer programcı, programında bir On Error deyimi
kullanmaz ve olası hataları kontrol altına almazsa; hata oluştuğunda
program çalışma zamanı içinde hatayı verir ve kesilir. Program içinde bir hata denetimi yapılırsa; hata oluştuğu
anda program kontrolü, hata kontrolü kısmına atlar. Hata denetimi; Resume,
Exit Sub ya da Exit komutuna kadar aktif kalır. Hata denetiminin ardından
hatanın tanımlanması için Err nesnesinin Number özelliği
kullanılır. Örnek : Sıfıra bölünme hatalarına karşı tuzak Sub Button32_Click () HataKontrol: NOT: Bu dokümanlar Faruk Çubukçu tarafından
hazırlanmıştır. Ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için
www.farukcubukcu.com adresine
bakınız. II. Hata Düzeltme Araçları Bir Visual Basic programı geliştirirken ya da programın
çalışması sırasında bir hata ile kesilmesinden sonra hatanın bulunması
ve giderilmesi için belli araçlar kullanılır. Bunların başında Debug
(Hata Giderme) araç çubuğu gelir: Şekil: Debug araç çubuğu Şekil: Break düğmesi Programın kesilmesi ya da Break düğmesine tıklanarak program debug moda alınır. İşte bu durumda programcı Visual Basic hata giderme araçlarını kullanır. A. Kesme Noktası (Toggle Breakpoint) Programın bir yerine gelip durmasını istiyorsunuz.
Ve o aşamada değerleri kontrol edeceksiniz. İşte bu olanağı size kesme
noktası sağlar. Kod içinde kesme noktası ile işaretlenen satır işletilmeden
önce program durur. Kesme noktası genellikle programı belli bir yerde
durdurup o aşamada bazı değişkenlerin değerlerinin kontrol edilmesini
sağlar. Bu işlem için araç çubuğundaki Toogle BreakPoint
düğmesi kullanılır. Tekran tıklanarak kesme noktası kaldırılır.
B. Bilgi Pencereleri (Locals Window, Immediate
Window ve Watch Window) Program kesildikten sonra; Procedure içinde bir değişkenin
ya da bir ifadenin seçilerek değerinin ne olduğuna bakılmak istenirse
o zaman anlık izleme penceresi (instant watch) kullanılır. Locals Window Expression sütünunda değişkenlerin adları listelenir.
Bütün class modüllerinde buradaki ilk değer <Me> değeridir. Bu
değerin üzerine tıklanarak genişletilir. Value sütünunda ise
değişkenin değeri görünür. Bu değerin üzerinde çift tıklanarak değişiklik
yapılabilir. Immediate Window Anlık izleme penceresinde değişkenlerin ya da ifadelerin
değerlerini göstermek için (Print) deyimi ya da ? kullanılır. Ayrıca
istenirse kod satırından Immediate Window ekranına sürükleme yapılır.
Örnek: Gözden Geçirme 1. Programınızda daha az hata ile karşılaşmak için
neler yaparsınız? |