COMException クラス

定義

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

public ref class COMException : Exception
public ref class COMException : System::Runtime::InteropServices::ExternalException
public class COMException : Exception
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class COMException : System.Runtime.InteropServices.ExternalException
type COMException = class
    inherit Exception
type COMException = class
    inherit ExternalException
[<System.Serializable>]
type COMException = class
    inherit ExternalException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type COMException = class
    inherit ExternalException
Public Class COMException
Inherits Exception
Public Class COMException
Inherits ExternalException
継承
COMException
継承
派生
属性

注釈

共通言語ランタイムは、既知の HRESULT を例外を.NET Frameworkに変換し、COM オブジェクトがマネージド クライアントに意味のあるエラー情報を返すことができます。 また、HRESULT から例外へのマッピングは、アンマネージ クライアントに特定の HRESULT を返すことで、他の方向にも機能します。 マッピングの詳細については、「 方法: HRESULT と例外をマップする」を参照してください。

ランタイムが見慣れない HRESULT (特定の対応する例外がない HRESULT) を検出すると、クラスのインスタンスが COMException スローされます。 この万能例外は、例外と同じメンバーを公開し、呼び出し先から返される HRESULT を含むパブリック ErrorCode プロパティを継承します。 ランタイムでエラー メッセージが使用可能な場合 (Visual Basicの IErrorInfo インターフェイスまたはErrオブジェクトから取得した場合、または場合によってはオペレーティング システムから取得した場合)、メッセージは呼び出し元に返されます。 ただし、COM コンポーネントの開発者がエラー メッセージを含めなかった場合、ランタイムは、メッセージ文字列の代わりに 8 桁の HRESULT を返します。 HRESULT を使用すると、呼び出し元は汎用例外の原因を特定できます。

COMException 例外の処理

例外のトラブルシューティングに関するいくつかの考慮事項を次に COMException 示します。

プロパティを確認するErrorCode
ランタイムで不慣れな HRESULT が検出され、例外がスロー COMException されると、 ErrorCode このプロパティにはエラー メッセージまたはエラー メッセージが使用できない場合は、8 桁の HRESULT 値が含まれます。 エラー メッセージまたは HRESULT 値は、例外の原因を特定するのに役立ちます。

HRESULT 値の一覧については、「 一般的な HRESULT 値」を参照してください。

遅延バインディング引数とMicrosoft Office オブジェクト
Microsoft Office オブジェクトのメソッドに遅延バインド引数を渡すと、COMExceptionオブジェクトが COM オブジェクトの場合に例外がスローされる場合があります。 遅延バインダーは、そのようなメソッド呼び出しには ByRef パラメーターが関連し、受け渡すプロパティに set アクセサーがあるものと想定します。 このプロパティがない場合、.NET Frameworkは例外をMissingMethodException生成します (HRESULT を使用CORE_E_MISSINGMETHOD)。 このような動作に対処するには、事前バインディングされたオブジェクトを使用するか、またはオブジェクトのプロパティの代わりに変数を渡します。

Visual Studioとホスティング プロセス
COM は、Visual Studioとホスティング プロセスの間の通信に使用されます。 コードの実行前に使用されるため、 CoInitializeSecurity を呼び出すと、この例外がスローされます。

場合によっては、管理者としてVisual Studioを実行すると、問題が解決される場合があります。 ホスティング プロセスを無効にすることもできます。

COMException 例外のスロー

このクラスをCOMException使用して、アンマネージ クライアントに特定の HRESULT を返すことができますが、ジェネリック例外を使用するよりも、特定の.NET Framework例外をスローすることをお勧めします。 マネージド クライアントとアンマネージド クライアントは、.NET Framework オブジェクトを使用でき、マネージド呼び出し元に HRESULT をスローすることは、例外をスローするよりも理解しにくいと考えてください。

コンストラクター

COMException()

COMException クラスの新しいインスタンスを既定値で初期化します。

COMException(SerializationInfo, StreamingContext)

シリアル化データから、COMException クラスの新しいインスタンスを初期化します。

COMException(String)

指定したメッセージを使用して、COMException クラスの新しいインスタンスを初期化します。

COMException(String, Exception)

指定したエラー メッセージおよびこの例外の原因となった内部例外への参照を使用して、COMException クラスの新しいインスタンスを初期化します。

COMException(String, Int32)

指定したメッセージとエラー コードを使用して、COMException クラスの新しいインスタンスを初期化します。

プロパティ

Data

例外に関する追加のユーザー定義情報を提供する、キーと値のペアのコレクションを取得します。

(継承元 Exception)
ErrorCode

エラーの HRESULT を取得します。

(継承元 ExternalException)
HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。

(継承元 Exception)
HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。

(継承元 Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。

(継承元 Exception)
Message

現在の例外を説明するメッセージを取得します。

(継承元 Exception)
Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。

(継承元 Exception)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。

(継承元 Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。

(継承元 Exception)

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の根本原因である Exception を返します。

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。

(継承元 Exception)
GetType()

現在のインスタンスのランタイム型を取得します。

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

例外の内容を文字列に変換します。

ToString()

現在の例外の文字列形式を作成して返します。

(継承元 Exception)

イベント

SerializeObjectState
互換性のために残されています。

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。

(継承元 Exception)

適用対象

こちらもご覧ください