Programi delphi IDE de çalıştırdıgın için önce delphi debugger i exception ı yakalayıp, gösteriyor. Eger delphi dışında çalıştırırsan, hata mesajını programın verdigini görürsün.
Raise i kaldırırsan exception yaratılmaz, program kayıt yapmaya devam eder. try except blokları hata yakalama için kullanılır. Gerektiginde prgoramın kendisi exception yaratıp, kodların devam etmesini engeller.
Yapmak istedigin kaydın engellenmesi ise, raise ile bunu beforepost ta yapabilirsin. Denemelerini yaparken programı da delphi ide dışında çalıştırmayı dene veya delphi nin exception yakalamasını seçeneklerden kaldır.
ShowMessage sadece bilgi gösterir, kendinden sonraki kodların çalışmasını engellemez, raise hata oluşturup, kendinden sonraki kodların çalıştırılmasını engeller.
Kod: Tümünü seç
try
DosyayiAc;
HesaplamaYap;
Kaydet;
CaySoyle;
except
on E:exception do
ShowMessage('Hata var: ' +E.message);
.....
end;
Yukaridaki kodda ornegin dosyayiAc ta dosya yoksa, bunu sisteme showmessage la söylesen bile, kendinden sonra gelen hesaplamayap, kaydet, caysoyle çalışacaktır. Dosya açılmadıgı için buradaki işlemlerin yapılması sorunlu olacaktır. Oysa dosyayiAc raise ile dosya yok exeption i oluşturursa, program dogrudan except bloguna gidecektir, kendinden sonra gelen hesaplamayap, kaydet, caysoyle çalışmayacaktır. Raise ile exception oluşturulması programın daha kararlı çalışmasını saglar.
Raise kullanmadan da programı düzenleyebilirsin, dosyavarmi gibi degişkenleri if lerle kontrol edebilrsin, fakat bu if ler programı gereksiz yere karmaşıklaştırır. Try except blogu hata yakalamak için kullanılan en etkili yöntemdir.