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 | 例外の処理とスロー