Edit

Share via


Compiler Error C2725

'exception' : unable to throw or catch a managed or WinRT object by value or reference

The type of a managed or WinRT exception was not correct.

Examples

The following sample generates C2725 and shows how to fix it.

// C2725.cpp
// compile with: /clr
ref class R {
public:
   int i;
};

int main() {
   R % r1 = *gcnew R;
   throw r1;   // C2725

   R ^ r2 = gcnew R;
   throw r2;   // OK
}

The following sample generates C2725 and shows how to fix it.

// C2725b.cpp
// compile with: /clr
using namespace System;
int main() {
   try {}
   catch( System::Exception%) {}   // C2725
   // try the following line instead
   // catch( System::Exception ^e) {}
}