次の方法で共有


COMException クラス

COM メソッドの呼び出しによって、認識されない HRESULT が返された場合にスローされる例外です。

この型のすべてのメンバの一覧については、COMException メンバ を参照してください。

System.Object
   System.Exception
      System.SystemException
         System.Runtime.InteropServices.ExternalException
            System.Runtime.InteropServices.COMException

<Serializable>
Public Class COMException   Inherits ExternalException
[C#]
[Serializable]
public class COMException : ExternalException
[C++]
[Serializable]
public __gc class COMException : public ExternalException
[JScript]
public
   Serializable
class COMException extends ExternalException

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

共通言語ランタイムは既知の HRESULT を .NET 例外に変換します。これによって COM オブジェクトは意味のあるエラー情報をマネージ クライアントに対して返すことができます。HRESULT と例外の割り当ては、逆方向でも機能します。この場合は、特定の HRESULT をアンマネージ クライアントに返します。割り当ての詳細については、「 HRESULT と例外 」を参照してください。

共通言語ランタイムは未知の HRESULT (特定の対応する例外がない HRESULT) に遭遇すると、 COMException クラスのインスタンスをスローします。この汎用の例外は、通常の例外と同じメンバを公開します。また、呼び出し先が返す HRESULT を格納するパブリック ErrorCode プロパティが含まれています。エラー メッセージ (IErrorInfo インターフェイス、Visual Basic の Err オブジェクト、または一部のケースではオペレーティング システムから発生した) が共通言語ランタイムで利用できる場合、このエラー メッセージは呼び出し元に返されます。ただし、COM コンポーネントにエラー メッセージが含まれていない場合、共通言語ランタイムはメッセージの文字列の代わりに 8 桁の HRESULT を返します。HRESULT があると、呼び出し元はこの汎用例外の原因を特定できます。

COMException クラスを使用して特定の HRESULT をアンマネージ クライアントに返すことができますが、汎用の例外ではなく .NET 例外を使用することをお勧めします。アンマネージ クライアントと同様にマネージ クライアントでも .NET オブジェクトを使用できます。また、HRESULT をマネージ クライアントの呼び出し元にスローした場合、例外をスローした場合より状況がわかりにくくなります。

必要条件

名前空間: System.Runtime.InteropServices

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

COMException メンバ | System.Runtime.InteropServices 名前空間 | Exception | 例外の処理とスロー