编译器错误 C2687

“type”:异常声明不能为“void”,也不能表示不完整类型或指向不完整类型的指针或引用

对于要成为异常声明的一部分的类型,它必须被定义而不是 void。

以下示例生成 C2687:

// C2687.cpp
class C;

int main() {
   try {}
   catch (C) {}   // C2687 error
}

可能的解决方法:

// C2687b.cpp
// compile with: /EHsc
class C {};

int main() {
   try {}
   catch (C) {}
}