Hata Yönetimi
Hata Yönetimi
dene, yakala, sonunda, fırlat, başında.
dene/yakala/sonunda hata yönetiminin çekirdeğidir. başında ve _başında hazırlık aşamalarıdır; _başında hatayı yutmaz.
Referans
Bu sayfa 5 katalog öğesini kapsar. Aşağıdaki maddeler language-spec, örnekler ve katalog alanlarından üretilmiştir.
'dene' / 'yakala' / 'sonunda'
Nedir?
yakala olmadan dene yok; sonunda isteğe bağlı. Tipsiz yakala kullanıcı hatası + US15xx yakalar. sonunda normal/fırlatma/=\>/çık/devam sonrası da çalışır.
Sözdizimi
dene { }yakala hata { }sonunda { }Basit örnek
dene { fırlat @Hata("Bir hata") }yakala hata { syaz "Yakalandı" }Çıktı
Yakalandı
Dikkat edilmesi gerekenler
- Sıfıra bölme tipsiz yakalamaya düşer.
sonundayeni hata birincildir.
Tipli 'yakala'
Nedir?
Tipli yakala yalnız Hata veya türeyen kullanıcı hatasını türetme zinciriyle eşleştirir; ad karşılaştırması yok.
Sözdizimi
yakala hata: VeritabanıHatası{}Basit örnek
yakala hata: VeritabanıHatası { }Dikkat edilmesi gerekenler
yakala hata: Hatasıfıra bölmeyi yakalamaz.
'fırlat'
Nedir?
fırlat Hata örneği üretir. Yakalanmazsa US1525; ileti mesaj alanıdır.
Sözdizimi
fırlat @Hata("Kullanıcı bulunamadı")Basit örnek
fırlat @Hata("Bir hata")Dikkat edilmesi gerekenler
- Tip US0846.
ref/çıktı/nesne değişikliği hata ile geri alınmaz.
'başında'
Nedir?
Hazırlık; dene ile aynı korumalı bölge. Hata verirse dene çalışmaz, eşleşen yakala ve sonunda çalışır.
Sözdizimi
başında { }dene { }yakala hata { }sonunda { }Basit örnek
başında { fırlat @Hata("hazır") }dene { deneSayacı = 1 }yakala hata { sayaç = 1 }sonunda { sayaç = sayaç + 1 }Çıktı
0 2
Dikkat edilmesi gerekenler
başında+_başında→ US0408.
'_başında'
Nedir?
Hata verirse: dene/yakala çalışmaz; sonunda çalışır; sonra hata çağırana iletilir (yutulmaz). Lexer’da ayrı belirteç.
Sözdizimi
_başında { }dene { }yakala hata { }sonunda { }Basit örnek
_başında { fırlat @Hata("hazır") }dene { syaz "dene" }yakala hata { syaz "yakala" }sonunda { syaz "son" }Çıktı
son hazır
Dikkat edilmesi gerekenler
sonundakendi hatası birincildir.