Çalışma Zamanı Hataları

ABAP programının çalışmaya devam edemeyeceği ve sonlandırılması gerektiği durumlardır. Aşağıdaki durumlarda oluşabilir.

  • Yakalanmayan istisnalar
  • Yakalanabilir ama yakalanmayan istisna oluştuğunda.
  • Yakalanamayan istisna oluştuğunda.
  • Mesaj tipi X olan mesaj gönderildiğinde.
  • ASSERT ifadesi kullanıldığında.

ST22 işlem kodu aracılığıyla görüntülenebilirler.

İSTİSNA YÖNETİMİ (EXCEPTION HANDLING)

Programda olağandışı bir durumda oluştuğunda hata dökümü ile sonlanmasını önlemek için istisna yönetimi kullanılır.

Sınıf temelli yakalanabilen istisnalar, ABAP çalışma ortamında veya ABAP programında oluşabilir. İstisnai durum oluşturmak için aşağıdaki ifadeler kullanılır.

  • RAISE EXCEPTION
  • Koşullu ifadelerde THROW tanımlanarak

Oluşturulan istisnalar TRY-CATCH-ENDTRY ifadeleri ile yakalanırlar.

Fonksiyon modülleri ve yöntemlerde sınıf temelli olmayan istisnalardır. Class Builder, Function Builder veya yerel sınıflar içerisine tanımlanırlar.

RAISE EXCEPTION

Geçerli işlem bloğunun çalışmasını iptal eder ve sınıf temelli istisna oluşturur.

THROW

Koşullu ifadelerde tanımlanan istisnanın oluşmasını sağlar. COND veya SWITCH ifadeleri kullanılır.

Örnek: Sıfıra bölme hatasını yakalayan bir örnek. Sıfıra bölme istisnasını yakalamak için CX_SY_ARITHMETIC_ERROR sınıfı kullanılmıştır.

DATA: gv_sonuc TYPE i,
gv_hata TYPE string,
gs_root TYPE REF TO cx_sy_arithmetic_error.
TRY.
gv_sonuc = 1 / 0.
CATCH cx_sy_arithmetic_error INTO gs_root.
gv_hata = gs_root->get_text( ).
WRITE: / ‘Hata:’, gv_hata.
ENDTRY.

SE24 işlem kodundan CX_SY_ARITHMETIC_ERROR sınıfının süper ve alt sınıflarını görebilirsiniz.

Leave a Reply

Your email address will not be published. Required fields are marked *