Try ve Catch Komutları

Try komutu istisna yönetimi yapacağın kod bloğunun başladığını gösterir. Ve bu blok içinde herhangi bir istisna fırlatılır ise yakalanabilir ve buna göre yönetilebilir.
Catch ifadesi try bloğundan sonra gelir ve bir istisna fırlatıldığında yakalanıp hangi kodun işletileceğini tanımlar. Catch durumu tanımlanmak zorunda değildir ama yinede her try durumu bir catch durumuna sahip olmalıdır.
Retry komutu sistemin tekrar try bloğu içindeki kodu işlemesi anlamına gelir.

Örnek: Try, Catch, Retry

CustTable custTable;
;
try
{
custTable.AccountNum =“0001”;
custTable.custGroup =“50”;
custTable.Name =“Example of try catch”;
custTable.insert();
}
catch (Exception::error)
{
error(“There was an error while inserting the record.”);
}
catch (Exception::deadlock)
{
retry;
}
İki catch durumunun olduğunu görüyoruz. Bunlardan biri error istisnası içindir ve insert methodunda oluşabilecek bir hata yakalamak için konmuştur. İkincisi ise veritabanındaki deadlock istisnasını yakalamak için kullanılmıştır.
Deadlock istisnası fırlatıldığında tablo üzerindeki tüm kilitler serbest bırakılır. Burda söylenmesi gereken bir şey daha var retry ile tekrar try bloğu işletilmeye çalışılır ve fakat kısır döngüye girilmemesi için bir sayaç yardımı ile kaç defa denendiği ve kaçıncıda denenmemesi gerektiği belirtilmelidir.

Fırlatılan İstisnalar

Throw durumu catch bloğu ile yakalanabilen hataları fırlatmak için kullanılır. Bu komut fırlatılan hatanın tipini açıkça yayımlar. Eğer try bloğu bir catch listesine sahip değil ise hata bir sonraki try bloğuna taşınır.

Örnek: Throw İfadesi

try
{
select custTable
where custTable.accountNum == ‘1019’;
if (!custTable.RecId)
throw error(“Customer does not exist”);
}
catch (exception::error)
{
error (“Process was aborted”);
}
ttsabort komutu işlemi sonlandırır ve veriyi ttsBegin durumundaki haline döndürür . Sistem bir hata fırlattığında ttsAbort otomatik olarak çağırılır ve catch bloğu içinde tekrar çağırılmasına gerek kalmaz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Dijital Dönüşümünüzü AI İle Hızlandırın

Dynamics 365 ve AI destekli çözümlerle iş süreçlerinizi optimize edin, verinizi anlamlı içgörülere dönüştürün ve büyümenizi sürdürülebilir hale getirin.

AI-Ready Enterprise Partner

Microsoft Dynamics 365 ve yapay zekâ çözümleriyle kurumsal sistemlerinizi güçlendirir, operasyonel karmaşıklığı azaltır ve geleceğe hazır bir mimari tasarlarız.

DMR Göztepe Merkez Ofis

Eğitim Mah. Hızırbey Cad. No:118/5 D:1 Kadıköy İstanbul

Marmara Üniversitesi Göztepe Kampüsü Teknopark

Tel: +90 216 470 79 49

E-posta: info@dmrbt.com

DMR Başıbüyük Ofis

Başıbüyük Mahallesi Süreyyapaşa Başıbüyük Yolu Sk. No: 4/7 Maltepe İstanbul

Marmara Üniversitesi Başıbüyük Kampüsü Teknopark

Tel: +90 216 470 79 49

E-posta: info@dmrbt.com