Hata yakalama, yazdığımız programın büyüklüğüne göre çok önemli olan bir konudur (aslında her zaman önemlidir ama bakmayın üşeniyoruz :) ). Özellikle ABAP için user-exitleri yazarken veya herhangi bir programımızda hata çıktığında programımızın patlamadan , hataya rağmen çalışmasını istiyorsak TRY ENDTRY bizim için vazgeçilmez bir yapıdır.
Örneğin, sıfıra bölmelerden kaynaklanan hatalarda veya bir Z'li tablomuzun bir satırını güncellerken oluşabilecek problemlerde programın bir şekilde çalışmasını ve ekrana RUN TIME ERROR hatasını getirmesini istemiyorsak
aşşağıdaki yapıyı kullanabiliriz.
Özellikle user-exit yazarken, SAP standart programının patlamasını engelleriz.
REPORT ZTEST_001.
*Örneğin aşşağıda sıfıra bölmeden kaynaklanan bir hata var fakat program
*Run Time Error vermeden çalışmaya devam edecektir.
*Burada ki CX_ROOT , tüm hataları tutabilen genel bir sınıftır.
data: lv_i type i.
data OREF type ref to CX_ROOT.
TRY
lv_i = 10 / 0.
CATCH CX_ROOT into OREF. "burada OREF'in içi CX_SY_ZERODIVIDE olarak dolacaktır.
write 'hata'.
ENDTRY.
write: / 'program devam ediyor'.
*******************************************************
Konu ile ilgili detaylı içerik ve örnek ABAP Kodları,daha sonra eklenecektir.
SAP ve ABAP ile ilgili tüm sorularınızı
serkurumsal@yandex.com
E-Mail adresi ile bize ulaÅŸarak sorabilirsiniz.
Serkan AKKAVAK
Bilgisayar Mühendisi
0 Comments