Compiler Error C2687


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Compiler Error C2687.

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) {}