Delphi Uygulamalarında Hataları ve İstisnaları İşleme

click fraud protection

Ne yazık ki, bina uygulamaları kodlamayı içerir. Programınızı ne kadar dikkatli yazdığınıza / hatalarını ayıkladığınıza bakılmaksızın, yanlış gidebilecek her durumu hayal etmek imkansız olacaktır. Deneyimsiz kullanıcı, örneğin, varolmayan bir dosyayı açmaya veya veri alanına hatalı bir değer girmeye çalışabilir.
Kullanıcılar hata yapar ve bu hataları mümkün olan her yerde ve mümkün olduğunca ele almaya / önlemeye hazır olmalıyız.

Hatalar, İstisnalar?

Bir istisna genellikle bir hata koşulu veya bir uygulamadaki normal yürütme akışını kesintiye uğratan başka bir olaydır. Kod satırı işlenirken bir hata oluştuğunda, Delphi TObject öğesinden özel nesne olarak adlandırılan bir nesneyi oluşturur (yükseltir).

Korumalı Bloklar

Bir uygulama bir istisnayı, bir sonlandırma kodu yürüterek, istisnayı işleyerek veya her ikisini birden yanıtlayarak yanıt verir. Belirli bir kod içinde hata / istisna yakalamayı etkinleştirmenin yolu, istisnanın korunan bir ifade bloğu içinde gerçekleşmesi gerekir. Genel kod şöyle görünür:

instagram viewer
Deneyin. {korumalı kod bloğu} dışında. başlıyor. {kural dışı durum blok tutamacı BazıException} sonu; son;

bir dene / hariç deyimi korumalı kod bloğundaki ifadeleri yürütür. İfadeler herhangi bir istisna oluşturulmadan yürütülürse, istisna bloğu yok sayılır ve kontrol, bitiş anahtar sözcüğünü izleyen ifadeye iletilir.

Misal:

... Sıfır: = 0; Deneyin. kukla: = 10 / Sıfır; dışında. EZeroDivide üzerinde. MessageDlg ('Sıfıra bölünemez!', MtError, [mbOK], 0); son;... 

Kaynakları Koruma

Kodun bir bölümü bir kaynak edindiğinde, kaynağın tekrar yayınlandığından emin olmanız gerekir (veya bellek sızıntısı), kodun normal bir şekilde tamamlanıp tamamlanmadığına veya bir istisna nedeniyle kesintiye uğradığından bağımsız olarak. Bu durumda, sözdizimi şunu kullanır: en sonunda anahtar kelime ve şuna benzer:

{kaynakları tahsis etmek için bazı kodlar} Deneyin. {korumalı kod bloğu} en sonunda. {termination blok - ücretsiz kaynak kodları} son;

Misal:

... AboutBox: = TAboutBox. Oluştur (nil); Deneyin. AboutBox. ShowModal; en sonunda. AboutBox. Serbest bırakmak; son;... 

Uygulama. OnException

Uygulamanız istisnaya neden olan hatayı işlemezse, Delphi varsayılan istisna işleyicisini kullanır - sadece bir mesaj kutusu açılır. Hataları uygulama düzeyinde yakalamak için TApplication nesnesi için OnException olayında kod yazmayı düşünebilirsiniz.

İstisnalar Arası

İstisna işleme özelliğine sahip bir program oluştururken Delphi'nin İstisnalar'ı kırmasını istemeyebilirsiniz. Delphi'nin bir istisnanın nerede olduğunu göstermesini istiyorsanız bu harika bir özelliktir; ancak, kendi istisna durumunuzu test etmeniz can sıkıcı olabilir.

Birkaç son kelime

Bu makalenin fikri, istisnaların ne olduğuna hızlıca göz atmaktır. İstisna yönetimi hakkında daha fazla tartışma için, Delphi İstisna İşleme'deki Özel Durumları İşleme Üzerine, gibi bir araç kullanarak Delphi Çökmesi / Hata Bildirimi ile Özel Durum İşleme ve aşağıdaki ilgili makalelerin bazıları:

instagram story viewer