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ı
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ı" .
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