Error del compilador C2687
'tipo': la declaración de excepción no puede ser 'void' o denotar un tipo, puntero o referencia incompleta a un tipo incompleto
Para que un tipo forme parte de una declaración de excepción, debe definirse y no debe ser "void".
El ejemplo siguiente genera el error C2687:
// C2687.cpp
class C;
int main() {
try {}
catch (C) {} // C2687 error
}
Posible solución:
// C2687b.cpp
// compile with: /EHsc
class C {};
int main() {
try {}
catch (C) {}
}