Η συνάρτηση feraiseexcept () στο C ++ επιχειρεί να αυξήσει όλες τις εξαιρέσεις κινητού σημείου που καθορίζονται από το όρισμα.
Η συνάρτηση feraiseexcept () ορίζεται στο αρχείο κεφαλίδας.
πρωτότυπο feraiseexcept ()
int feraiseexcept (int εκτός)
Οι εξαιρέσεις κυμαινόμενου σημείου που θα εγγραφούν παρατίθενται στο όρισμα εξαιρέσεις.
Επίσης, θα πρέπει να ενεργοποιήσετε το FENV_ACCESS , το οποίο θα δώσει στο πρόγραμμά σας πρόσβαση στο περιβάλλον Κινούμενου σημείου για να δοκιμάσετε τις εξαιρέσεις που προέκυψαν.
παράμετροι feraiseexcept ()
- εκτός: Bitmask λίστα με σημαίες εξαίρεσης προς ανύψωση.
Μακροεντολή | Τύπος | Περιγραφή |
---|---|---|
FE_DIVBYZERO | Σφάλμα πόλου | Διαίρεση με το μηδέν |
FE_INEXACT | Ανακριβής | Δεν υπάρχουν ακριβή αποτελέσματα όπως (1.0 / 3.0) |
FE_INVALID | Σφάλμα τομέα | Τουλάχιστον ένα όρισμα που χρησιμοποιείται είναι μια τιμή για την οποία δεν έχει οριστεί η συνάρτηση |
FE_OVERFLOW | Σφάλμα υπερχείλισης | Το αποτέλεσμα είναι πολύ μεγάλο σε μέγεθος για να αναπαρασταθεί από τον τύπο επιστροφής |
FE_UNDERFLOW | Σφάλμα εύρους ροής | Το αποτέλεσμα είναι πολύ μικρό σε μέγεθος για να αναπαρασταθεί από τον τύπο επιστροφής |
FE_ALL_EXCEPT | Όλες οι εξαιρέσεις | Όλες οι εξαιρέσεις υποστηρίζονται από την εφαρμογή |
feraiseexcept () Επιστροφή τιμή
- Η συνάρτηση feraiseexcept () επιστρέφει μηδενική τιμή εάν αυξηθούν όλες οι εξαιρέσεις που καθορίζονται από τις εξαιρέσεις.
- Διαφορετικά επιστρέφει μη μηδενική τιμή.
Παράδειγμα: Πώς λειτουργεί η λειτουργία feraiseexcept ()
#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; )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Ανακτήθηκαν επιτυχώς τα FE_OVERFLOW και FE_INVALID