例外

try
{
    throw gcnew Exception("ERROR");
}
catch (Exception^ e)
{
    System::Console::Write(e->Message); // "ERROR"
}
finally
{
}

ユーザー定義の例外

Exceptionを継承して作成します。

ref class UserException : System::Exception
{
public:
    UserException(String^ message) : Exception(message)
    {
    }
};

アンマネージドの例外

C++/CLIのコンパイルで用いる/clrオプションでは構造化例外処理必須のため、C++の

throw 投入する変数;

の形式では、実際にはSystem.Runtime.InteropServices.SEHExceptionが投げられます。そのときHRESULTは、E_FAIL (0x80004005) です。

Microsoft Learnから検索