BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <fenv.h> (C99) > feraiseexcept

feraiseexcept() fonksiyonu

Bildirim

int feraiseexcept(int excepts); (C99)

Açıklama

Excepts parametresi ile gösterilen istisnaları devreye koyar. Eğer istisnalardan biri FE_OVERFLOW veya FE_UNDERFLOW ise, bu fonksiyon ayrıca FE_INEXACT değerini de devreye sokabilir.

Parametreler

excepts: Devreye girecek istisna değerlerini gösterir.

Dönüş değeri

Eğer tüm istisnalar devreye girmişse 0, aksi takdirde sıfır olmayan bir değer geri döndürür.

Örnek


#include <stdio.h>
#include <fenv.h>

void Test_Except(int idsonuc);

int main(void) {
    feclearexcept (FE_ALL_EXCEPT);

    Test_Except(fetestexcept(FE_ALL_EXCEPT));

    /* İstisna devreye koyma */
    if (!feraiseexcept(FE_INVALID)) Test_Except(fetestexcept(FE_ALL_EXCEPT));

    return 0;
}

void Test_Except(int idsonuc)
{
  printf("İşlem hata bildirimi:");

  if (idsonuc==0) printf(" Yok");                     //  0 (0x00)
  if (idsonuc==FE_INVALID) printf(" FE_INVALID");     //  1 (0x01)
  if (idsonuc==FE_DENORMAL) printf(" FE_DENORMAL");   //  2 (0x02)
  if (idsonuc==FE_DIVBYZERO) printf(" FE_DIVBYZERO"); //  4 (0x04)
  if (idsonuc==FE_OVERFLOW) printf(" FE_OVERFLOW");   //  8 (0x08)
  if (idsonuc==FE_UNDERFLOW) printf(" FE_UNDERFLOW"); // 16 (0x10)
  if (idsonuc==FE_INEXACT) printf(" FE_INEXACT");     // 32 (0x20)

  printf("\n");
}

Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:

İşlem hata bildirimi: Yok
İşlem hata bildirimi: FE_INVALID

Yukarıdaki program, tüm istisnaları temizledikten sonra feraiseexcept() fonksiyonu ile FE_INVALID istisnasını devreye sokar ve bu değeri ekrana yazar.