SlideShare a Scribd company logo
1 of 22
Bölüm 9 : Hata Yönetimi Bu dersi tamamladığımız zaman şunları yapabileceksiniz; ,[object Object]
Varsayılan hata yönetimini değiştirmek
Uygulamanızı denetleyecek hata kontrolcüleri oluşturmak
Hata yönetimini tetiklemek,[object Object]
Kaydı bul Yok mu? Varsayılan Hata Kontrolü hayır evet Geri al Kaydı görüntüle Hata mesajı görüntüle Yeniden dene
Customer: KAYIT YOK Sozsuz Döngü Koruması Çık REPEAT: FIND Customer     WHERE CustNum = 888. DISPLAY CustNum Name. END. RETRY yok Girdi yok
Customer AVAILABLE Kullanımı AVAILABLE Customer = True Customer 6 Jones 6 Jones Montgomery UK Kayıt arabelleği Ekran arabelleği Vertiabanı AVAILABLE Customer = False (kayıt yok) Kayıt arabelleği Veritabanı
Uygulama 1 : Varsayılan Hata Kontrolü
ON-ERROR Kullanımı ERROR-STATUS handle: hata bilgisinin yerini gösteren bir pointer ERROR-STATUS:ERROR ERROR = YES
Uygulama 2 : Kendi Hata Yönetim Kodunuzu Yazın
HATA!! X Message XYZ doesn’t exist OK Hata Kontrolünü Uyarlama /*** MyProc.p ***/ . . Bir hata mı var? Varsa, ne yapabilirim? . . Çağıran prosedüre geri dön Bir mesaj görüntüle Bir hata bayrağı fırlat Süreci durdur DUR
Hata Bayrağını Fırlatma Çağıran prosedür Bir veritabanı tetikleyici koduna çağrı ... Delete Customer. ... Çağıran prosedüre geri döndüren ERROR durumu /**** delCustomer.p ****/	 	... 	... <Müşterinin siparişlerini bulan kod> RETURN ERROR Customer.CustNum“numaralı müşterinin açık siparişleri var. Silemezsiniz!".
Hata Durumunu Denetlemek Varsayılan hata kontrolünün iptali Message /* eCallingProc1.p */ RUN eCalledProc.p NO-ERROR. IF ERROR-STATUS:ERROR THEN MESSAGE   “Kayıt bulunamadı" VIEW-AS ALERT-BOX ERROR. ELSE MESSAGE   “Kayıt bulundu" VIEW-AS ALERT-BOX. Hatayı kontrol et ve sonrasında birşeyler yap
Dönen Stringi Almak /* eCallingProc2.p */  RUN eCalledProc.p NO-ERROR. IF ERROR-STATUS:ERROR THEN    MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. ELSE MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX. /* eCalledProc.p */ PROMPT-FOR Customer.CustNum. FIND  Customer USING Customer.CustNum NO-ERROR. IF AVAILABLE Customer THEN   RETURN “Müşteri numarası "+STRING(CustNum). ELSE RETURN ERROR “Müşteri bulunamadı" .
Uygulama 2 : Hata Kontrolü
Hata Koşullarına Yanıt Üretmek ,[object Object]
RETURN [ERROR]
LEAVE
NEXT,[object Object]
DO Bloğuyla Hata işleme . . .   DO ON ERROR UNDO:      PROMPT Customer.CustNum.     FIND Customer WHERE CustNum = INPUT CustNum.     DISPLAY CustNum NAME Balance.     FOR EACH Order OF Customer:       DISPLAY OrderNum ShipDate PromiseDate.     END. /* FIND block */  END. /* DO block */ . . .  Hata kontrolüyle DO bloğu
Uygulama 2 : Varsayılan Davranış  ile ON-ERROR Karşılaştırması

More Related Content

More from kaan verdioglu

progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 10
progressokulu.com Advanced Business Language Slide 10progressokulu.com Advanced Business Language Slide 10
progressokulu.com Advanced Business Language Slide 10kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 8
progressokulu.com Advanced Business Language Slide 8progressokulu.com Advanced Business Language Slide 8
progressokulu.com Advanced Business Language Slide 8kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 7
progressokulu.com Advanced Business Language Slide 7progressokulu.com Advanced Business Language Slide 7
progressokulu.com Advanced Business Language Slide 7kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 6
progressokulu.com Advanced Business Language Slide 6progressokulu.com Advanced Business Language Slide 6
progressokulu.com Advanced Business Language Slide 6kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 5
progressokulu.com Advanced Business Language Slide 5progressokulu.com Advanced Business Language Slide 5
progressokulu.com Advanced Business Language Slide 5kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 3
progressokulu.com Advanced Business Language Slide 3progressokulu.com Advanced Business Language Slide 3
progressokulu.com Advanced Business Language Slide 3kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1kaan verdioglu
 
progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6kaan verdioglu
 
progressokulu.com Database Administration Slide 5
progressokulu.com Database Administration Slide 5progressokulu.com Database Administration Slide 5
progressokulu.com Database Administration Slide 5kaan verdioglu
 
progressokulu.com Database Administration Slide 4
progressokulu.com Database Administration Slide 4progressokulu.com Database Administration Slide 4
progressokulu.com Database Administration Slide 4kaan verdioglu
 
progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3kaan verdioglu
 

More from kaan verdioglu (14)

progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2
 
progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11
 
progressokulu.com Advanced Business Language Slide 10
progressokulu.com Advanced Business Language Slide 10progressokulu.com Advanced Business Language Slide 10
progressokulu.com Advanced Business Language Slide 10
 
progressokulu.com Advanced Business Language Slide 8
progressokulu.com Advanced Business Language Slide 8progressokulu.com Advanced Business Language Slide 8
progressokulu.com Advanced Business Language Slide 8
 
progressokulu.com Advanced Business Language Slide 7
progressokulu.com Advanced Business Language Slide 7progressokulu.com Advanced Business Language Slide 7
progressokulu.com Advanced Business Language Slide 7
 
progressokulu.com Advanced Business Language Slide 6
progressokulu.com Advanced Business Language Slide 6progressokulu.com Advanced Business Language Slide 6
progressokulu.com Advanced Business Language Slide 6
 
progressokulu.com Advanced Business Language Slide 5
progressokulu.com Advanced Business Language Slide 5progressokulu.com Advanced Business Language Slide 5
progressokulu.com Advanced Business Language Slide 5
 
progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4
 
progressokulu.com Advanced Business Language Slide 3
progressokulu.com Advanced Business Language Slide 3progressokulu.com Advanced Business Language Slide 3
progressokulu.com Advanced Business Language Slide 3
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1
 
progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6
 
progressokulu.com Database Administration Slide 5
progressokulu.com Database Administration Slide 5progressokulu.com Database Administration Slide 5
progressokulu.com Database Administration Slide 5
 
progressokulu.com Database Administration Slide 4
progressokulu.com Database Administration Slide 4progressokulu.com Database Administration Slide 4
progressokulu.com Database Administration Slide 4
 
progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3
 

progressokulu.com Advanced Business Language Slide 9

  • 1.
  • 2.
  • 4. Uygulamanızı denetleyecek hata kontrolcüleri oluşturmak
  • 5.
  • 6. Kaydı bul Yok mu? Varsayılan Hata Kontrolü hayır evet Geri al Kaydı görüntüle Hata mesajı görüntüle Yeniden dene
  • 7. Customer: KAYIT YOK Sozsuz Döngü Koruması Çık REPEAT: FIND Customer WHERE CustNum = 888. DISPLAY CustNum Name. END. RETRY yok Girdi yok
  • 8. Customer AVAILABLE Kullanımı AVAILABLE Customer = True Customer 6 Jones 6 Jones Montgomery UK Kayıt arabelleği Ekran arabelleği Vertiabanı AVAILABLE Customer = False (kayıt yok) Kayıt arabelleği Veritabanı
  • 9. Uygulama 1 : Varsayılan Hata Kontrolü
  • 10. ON-ERROR Kullanımı ERROR-STATUS handle: hata bilgisinin yerini gösteren bir pointer ERROR-STATUS:ERROR ERROR = YES
  • 11. Uygulama 2 : Kendi Hata Yönetim Kodunuzu Yazın
  • 12. HATA!! X Message XYZ doesn’t exist OK Hata Kontrolünü Uyarlama /*** MyProc.p ***/ . . Bir hata mı var? Varsa, ne yapabilirim? . . Çağıran prosedüre geri dön Bir mesaj görüntüle Bir hata bayrağı fırlat Süreci durdur DUR
  • 13. Hata Bayrağını Fırlatma Çağıran prosedür Bir veritabanı tetikleyici koduna çağrı ... Delete Customer. ... Çağıran prosedüre geri döndüren ERROR durumu /**** delCustomer.p ****/ ... ... <Müşterinin siparişlerini bulan kod> RETURN ERROR Customer.CustNum“numaralı müşterinin açık siparişleri var. Silemezsiniz!".
  • 14. Hata Durumunu Denetlemek Varsayılan hata kontrolünün iptali Message /* eCallingProc1.p */ RUN eCalledProc.p NO-ERROR. IF ERROR-STATUS:ERROR THEN MESSAGE “Kayıt bulunamadı" VIEW-AS ALERT-BOX ERROR. ELSE MESSAGE “Kayıt bulundu" VIEW-AS ALERT-BOX. Hatayı kontrol et ve sonrasında birşeyler yap
  • 15. Dönen Stringi Almak /* eCallingProc2.p */ RUN eCalledProc.p NO-ERROR. IF ERROR-STATUS:ERROR THEN MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. ELSE MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX. /* eCalledProc.p */ PROMPT-FOR Customer.CustNum. FIND Customer USING Customer.CustNum NO-ERROR. IF AVAILABLE Customer THEN RETURN “Müşteri numarası "+STRING(CustNum). ELSE RETURN ERROR “Müşteri bulunamadı" .
  • 16. Uygulama 2 : Hata Kontrolü
  • 17.
  • 19. LEAVE
  • 20.
  • 21. DO Bloğuyla Hata işleme . . . DO ON ERROR UNDO: PROMPT Customer.CustNum. FIND Customer WHERE CustNum = INPUT CustNum. DISPLAY CustNum NAME Balance. FOR EACH Order OF Customer: DISPLAY OrderNum ShipDate PromiseDate. END. /* FIND block */ END. /* DO block */ . . . Hata kontrolüyle DO bloğu
  • 22. Uygulama 2 : Varsayılan Davranış ile ON-ERROR Karşılaştırması
  • 23. Hata İşleme Tümcecikleri Bu hata işleme deyimlerinin herhangi biriyle… ...bu işlemlerden birini yapabilirsiniz ON ERROR UNDO [label1] ,LEAVE [label2] ON ENDKEY UNDO [label1] ,NEXT [label2] ON STOP UNDO [label1] ,RETRY [label1] ,RETURN {ERROR}[return-string] ON QUIT [UNDO [label1]] ON QUIT’te isteğe bağlı UNDO
  • 24. Uygulama 3 : ON-ERROR Kullanımı