C ++ feraiseexcept () - Biblioteca padrão C ++

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.
Macros de bitmask aceitos
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

Artigos interessantes...