COMException クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
- 継承
- 継承
- 派生
- 属性
注釈
共通言語ランタイムは、既知の 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 値」を参照してください。
遅延バインディング引数と Office オブジェクトMicrosoft
Office オブジェクトのメソッドに遅延バインディング引数Microsoft渡すと、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 |
エラーの |
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) |
events
SerializeObjectState |
互換性のために残されています。
例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。 (継承元 Exception) |