编译器错误 C2184

“type”:对 __except 表达式而言为非法类型,必须为整型

__except 语句中使用了某个类型,但不允许使用该类型。

下面的示例生成 C2184:

// C2184.cpp
void f() {
   int * p;
   __try{}
   __except(p){};   // C2184
}

可能的解决方法:

// C2184b.cpp
// compile with: /c
void f() {
   int i = 0;
   __try{}
   __except(i){};
}