Erro do Compilador C2687
"type": a declaração de exceção não pode ser "void" nem denotar um tipo incompleto, um ponteiro para um tipo incompleto ou uma referência a um tipo incompleto
Para fazer parte de uma declaração de exceção, um tipo precisa estar definido e não ser nulo.
A amostra a seguir gera o erro C2687:
// C2687.cpp
class C;
int main() {
try {}
catch (C) {} // C2687 error
}
Resolução possível:
// C2687b.cpp
// compile with: /EHsc
class C {};
int main() {
try {}
catch (C) {}
}