ExpertiDict

C++ · Essencial · Português · Técnico

exceção

eseˈsɐ̃w̃substantivo

Mecanismo de tratamento de erros em que uma falha é sinalizada com throw e capturada em um bloco try/catch mais acima na pilha de chamadas, desfazendo os escopos intermediários.

Onde usar

Usada em falhas excepcionais, como arquivo ausente ou falta de memória. Em code review, discute-se lançar por valor, capturar por referência constante e quais funções podem lançar.

Em código

try {
  throw std::runtime_error("falhou");
} catch (const std::exception& e) {
  std::cerr << e.what() << '\n';
}

Exemplos

Essa função lança uma exceção se o arquivo não abrir.

Capture a exceção por referência constante, não por valor.

Cuidado

Exceções não são fluxo de controle comum; lançar em laços quentes ou a partir de destrutores traz problemas.

Veja também

Todos os termos de C++