C ++ 'daki feraiseexcept () işlevi, bağımsız değişken tarafından belirtilen tüm kayan nokta istisnalarını yükseltmeye çalışır.
Feraiseexcept () işlevi başlık dosyasında tanımlanmıştır.
feraiseexcept () prototipi
int feraiseexcept (int excepts);
Ortaya çıkarılacak kayan nokta istisnaları, bağımsız değişken istisnalarında listelenmiştir.
Ayrıca, programınızın ortaya çıkan istisnaları test etmek için Kayan nokta ortamına erişmesini sağlayacak olan FENV_ACCESS'i etkinleştirmelisiniz .
feraiseexcept () Parametreler
- istisnalar: Yükseltilecek istisna bayraklarının bit maskesi listesi.
Makro | Tür | Açıklama |
---|---|---|
FE_DIVBYZERO | Kutup hatası | Sıfıra bölüm |
FE_INEXACT | Hatasız | (1.0 / 3.0) gibi kesin sonuçlar değil |
FE_INVALID | Alan hatası | Kullanılan en az bir argüman, işlevin tanımlanmadığı bir değerdir |
FE_OVERFLOW | Taşma aralığı hatası | Sonuç, dönüş türüyle temsil edilemeyecek kadar büyüklükte |
FE_UNDERFLOW | Alt akış aralığı hatası | Sonuç, dönüş türüyle temsil edilemeyecek kadar küçüktür |
FE_ALL_EXCEPT | Tüm istisnalar | Uygulama tarafından desteklenen tüm istisnalar |
feraiseexcept () Dönüş değeri
- Feraiseexcept () işlevi, istisnalar tarafından belirtilen tüm istisnalar ortaya çıkarsa sıfır değeri döndürür.
- Aksi takdirde sıfır olmayan bir değer döndürür.
Örnek: feraiseexcept () işlevi nasıl çalışır?
#include #include #pragma STDC FENV_ACCESS ON using namespace std; int main() ( int retVal; feclearexcept(FE_ALL_EXCEPT); retVal = feraiseexcept(FE_OVERFLOW | FE_INVALID); if (retVal == 0) cout << "Successfully raised FE_OVERFLOW and FE_INVALID" << endl; else cout << "Raising FE_OVERFLOW and FE_INVALID failed" << endl; return 0; )
Programı çalıştırdığınızda, çıktı:
FE_OVERFLOW ve FE_INVALID başarıyla yükseltildi