C++ · Essencial · Português · Técnico
exceção
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.