HATA YAKALAMA l PROGRAMCI OLABLECEK HATALARI NCEDEN TAHMN
HATA YAKALAMA l PROGRAMCI, OLABİLECEK HATALARI ÖNCEDEN TAHMİN EDEREK BUNLARA UYGUN KARŞILIKLARI VEREBİLECEK KODLARI YAZMAK ZORUNDADIR.
HATA YAKALAMA l l PROGRAMIN HATASIZ YAZILMIŞ OLMASI, O PROGRAMIN HİÇ HATA VERMEYECEĞİ ANLAMINA GELMEZ. KULLANICIDAN VEYA DİĞER DURUMLARDAN KAYNAKLANAN SEBEPLERDEN DOLAYI DOĞRU YAZILMIŞ KODLAR DA HATA VEREBİLİR.
HATA YAKALAMA l l HATALI SATIRLARDA VEYA BEKLENMEDİK DURUMLARDA MAKİNANIN KİLİTLENMESİNİ ÖNLEMEK VEYA KULLANICIYI DERTTEN KURTARMAK İÇİN BAZI KOMUTLAR KULLANILIR. BUNLAR: l l l ON ERROR ON LOCAL ERROR KOMUTLARIDIR.
HATA YAKALAMA KOMUTU l l l l ON ERROR ON LOCAL ERROR ŞEKLİNDE KULLANILABİLİR. ON ERROR BÜTÜN HATALARI YAKALARKEN, ON LOCAL ERROR SADECE BULUNDUĞU ALT PROGRAMDAKİ HATALARI YAKALAR.
HATA YAKALAMA KOMUTU l l ON LOCAL ERROR HATANIN KOLAYCA BULUNUP İŞLENİLMESİ AÇISINDAN DAHA KULLANIŞLIDIR. BU KOD İŞLENDİKTEN SONRA OLUŞACAK HATALAR “DURUM PARAMETRESİ” İLE BELİRLENEN İŞLEME GÖRE DEĞERLENDİRİLİR.
DURUM PARAMETRESİ l l l ON LOCAL ERROR RESUME NEXT ON LOCAL ERROR GOTO ETİKET:
HATA YAKALAMA ALGORİTMASI BAŞLA RESUME HATALI KOD HATADAN SONRAKİ KOD SON HATA YAKALAYICI RESUME NEXT
ON LOCAL ERROR RESUME l l HATAYA YOL AÇAN DURUMUN DÜZELECEĞİ YA DA YİNELENMEYECEĞİ UMUDUYLA, HATAYI OLUŞTURAN SATIRIN TEKRAR İŞLETİLMESİNİ SAĞLAR. BU İFADE KULLANILMADAN ÖNCE MUTLAKA HATAYI OLUŞTURAN SORUNUN ORTADAN KALDIRILMASI GEREKİR.
ON LOCAL ERROR RESUME l HATAYI KULLANICININ DÜZELTMESİNİ, (ÖRNEĞİN DİSKET SÜRÜCÜYE DİSKETİN KOYULMASINI) İSTİYORSANIZ, RESUME PARAMETRESİ EN UYGUN YÖNTEMDİR.
ON LOCAL ERROR RESUME NEXT l SONRAKİ SATIRDAN İŞLEMİN DEVAM ETMESİNİ SAĞLAR.
ON LOCAL ERROR GOTO ETİKET: l HERHANGİ BİR HATA OLUŞTUĞUNDA “ETİKET” İLE BELİRLENMİŞ SATIRA GİDİLİR.
ERR NESNESİ l l VB PROGRAMINDA HER HATANIN BİR KODU VARDIR. ERR, İLGİLİ HATANIN NUMARASINI VERİR.
ERR NESNESİ l l ÖRNEĞİN 71 NUMARALI HATA, SÜRÜCÜDE DİSKET BULUNMAZSA OLUŞUR. BU HATA NUMARALARI İLE İLGİLİ DETAYLI BİLGİ İÇİN KİTABINIZIN 630. SAYFASINA BAKABİLİRSİNİZ.
ERR. DESCRIPTION l “DESCRIPTION” ÖZELLİĞİ, BİR ÇALIŞMA HATASI MEYDANA GELDİĞİNDE VB’E GÖNDERİLEN HATA İLETİSİNİ İÇERİR.
ERROR FONKSİYONU l l İLGİLİ HATANIN AÇIKLAMASI. DESCRIPTION ÖZELLİĞİ YERİNE TERCİH EDİLMELİDİR.
EXIT SUB VEYA EXIT FUNCTION l HATA OLUŞAN PROSEDÜRDEN ÇIKMAK İÇİN KULLANILIRLAR.
ÖRNEK 1: DİSKET SÜRÜCÜ HATA İŞLEYİCİ l PROSEDÜRÜN EN ÜSTÜNE AŞAĞIDAKİ KODLAR YAZILIR: l l on local error goto Disk. Error Exit Sub ‘alt programdan çık. . .
ÖRNEK 1: DİSKET SÜRÜCÜ HATA İŞLEYİCİ l PROSEDÜRÜN EN ALTINA AŞAĞIDAKİ KODLAR YAZILIR: l Disk. Error: l if err. number=71 then ‘eğer disket yoksa § § l else § § l l msgbox(“lütfen disketi sürücüye yerleştirin”) Resume msgbox(“dosya bulunamıyor”) Resume Stop. Trying ‘Stop. Trying etiketine git. End if Stop. Trying:
ÖRNEK 2: PROSEDÜRÜN EN ÜSTÜ l Private Sub Command 1_Click() l l l l on local error goto hata exit sub dim c. . . . . .
ÖRNEK 2: PROSEDÜRÜN EN SONU l hata: l select case err l l case 13: msgbox(“lütfen rakam giriniz”) case 11: msgbox(“bölen sıfır olamaz”) case 6: msgbox(“sayılar çok büyük”) case else § l l msgbox(err& “nolu hata: ”&error) end select end sub
ÖRNEK 3: l BURADAKİ HATA İŞLEYİCİ , DİSKETTEN BİR GRAFİK DOSYASI YÜKLERKEN HATA OLUŞTUĞUNDA “ERR” NESNESİNİN “DESCRIPTION” ÖZELLİĞİNİ KULLANARAK BİR HATA İLETİSİ GÖRÜNTÜLER.
ÖRNEK 3: l l l on error goto diskhata image 1. picture=loadpicture(“a: ornek. wmf”) exit sub’ prosedürden çık diskhata: msgbox(err. description), , “Yükleme Hatası” Resume ‘Yükleme işlemini tekrara dene.
ÖRNEK 4: DENEME SAYISINI KONTROL l SORUN YARATAN İŞLEMİ BİRKAÇ DEFA YİNELEDİKTEN SONRA, SORUN YİNE DE ÇÖZÜLMÜYORSA, PROGRAM, SORUN OLAN KOMUTLARIN ÜZERİNDEN ATLAR, YANİ SORUN OLAN KOMUTLAR ÇALIŞTIRILMAZ.
ÖRNEK 4: DENEME SAYISINI KONTROL l l sayac=0 on error goto diskhata exit sub’prosedürden çık image 1. picture=loadpicture(“a: ornek. wmf”)
ÖRNEK 4: DENEME SAYISINI KONTROL l l diskhata: msgbox(err. description), , “Yükleme Hatası” sayac=sayac+1 if sayac>2 then ‘eğer iki deneme yapıldıysa l l else l l resume next ‘sorun çıkaran komutları atla resume’tekrar dene. end if
- Slides: 25