Mega Code Archive

 
Categories / Delphi / OOP
 

Istisnalar

{try..except} var i:integer; begin try i:=strtoint(edit1.text); i:=i * i; showmessage('Karekökü :' + inttostr(i)); except on HATA:EConvertError do MessageDlg('Hata Oluştu.' +#13#13+ HATA.Message, mtWarning, [mbOK], 0); end; {Yukarıdaki örnekte hata oluşma olasılığı olan ilk yer dönüşüm noktasıdır bu sebeple hata denetleme bloğu bu satırın üstünden başlamıştır. try..except bloğunun genelyapısı şöyledir: hata oluşan yerden itibaren kod hiçbir zaman çalıştırılmaz. Direk oluşan hata size mesaj ile iletilir. Bu örnekte Edit1'e sayı dışı bir giriş yapıldığında istisna oluşacaktır. } {try..finally} var i:real; begin try i:=10 /0; edit1.text := FloatToStr(i); finally MessageDlg('Hata Oluştu.', mtWarning, [mbOK], 0); end; MessageDlg('Hayat devam ediyor...', mtWarning, [mbOK], 0); { Yukarıdaki örnekte hata oluşacağı kesindir. sıfır dışında bir rakam sıfıra bölünemez. bu durumda hata oluşsa bile kod işlemeye devam edecektir. tabi hata oluştu mesajı gösterilecektir. bu mesajı iptal etme imkanınızda var. öyle bir durum olurki hata oluşsa bile hiçbirşey olmamış gibi işe devam etmek ister veya hiçbirşey çaktırmamak için finally ve end arasına mesaj vb.. yazmıyabilirsiniz. } { SON SÖZ: bu iki yöntemi kullanarak hata sonuçlarını delphi hata ilesi göstermeden siz kendi uyarınızı devreye sokabilirsiniz. sonuç olarak kendi hata yakalama mekanizmanızı kendiniz oluşturabilirsiniz. sonuç itibariyle siz bu blokları kullanmasanız dahi delphi bütün projeyi otomatik olarak try ... except bloğu arasına zaten alıyor... }