A função feraiseexcept () em C ++ tenta aumentar todas as exceções de ponto flutuante especificadas pelo argumento.
A função feraiseexcept () é definida no arquivo de cabeçalho.
protótipo feraiseexcept ()
int feraiseexcept (int excepts);
As exceções de ponto flutuante a serem levantadas são listadas nas exceções de argumento.
Além disso, você deve habilitar FENV_ACCESS , o que permitirá que seu programa acesse o ambiente de ponto flutuante para testar as exceções levantadas.
Parâmetros feraiseexcept ()
- exceções: lista de bitmask de sinalizadores de exceção a serem levantados.
Macro | Tipo | Descrição |
---|---|---|
FE_DIVBYZERO | Erro de pólo | Divisão por zero |
FE_INEXACT | Inexato | Resultados não exatos, como (1.0 / 3.0) |
FE_INVALID | Erro de domínio | Pelo menos um dos argumentos usados é um valor para o qual a função não está definida |
FE_OVERFLOW | Erro de faixa de estouro | O resultado é muito grande em magnitude para ser representado pelo tipo de retorno |
FE_UNDERFLOW | Erro de faixa de underflow | O resultado é muito pequeno em magnitude para ser representado pelo tipo de retorno |
FE_ALL_EXCEPT | Todas as exceções | Todas as exceções suportadas pela implementação |
feraiseexcept () Valor de retorno
- A função feraiseexcept () retorna valor zero se todas as exceções especificadas por exceções são levantadas.
- Caso contrário, ele retorna um valor diferente de zero.
Exemplo: como funciona a função 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; )
Quando você executa o programa, a saída será:
FE_OVERFLOW e FE_INVALID levantados com sucesso