Compiler Error C2687


For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

'type' : exception-declaration cannot be 'void' or denote an incomplete type or pointer or reference to an incomplete type

For a type to be part of an exception declaration, it must be defined and not void.

The following sample generates C2687:

// C2687.cpp  
class C;  
int main() {  
   try {}  
   catch (C) {}   // C2687 error  

Possible resolution:

// C2687b.cpp  
// compile with: /EHsc  
class C {};  
int main() {  
   try {}  
   catch (C) {}