COMException Třída

Definice

Výjimka, která je vyvolána, když je vrácena nerozpoznaná hodnota HRESULT z volání metody modelu COM.The exception that is thrown when an unrecognized HRESULT is returned from a COM method call.

public ref class COMException : System::Runtime::InteropServices::ExternalException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class COMException : System.Runtime.InteropServices.ExternalException
type COMException = class
    inherit ExternalException
Public Class COMException
Inherits ExternalException
Dědičnost
Odvozené
Atributy

Poznámky

Modul CLR (Common Language Runtime) transformuje dobře známé HRESULTy na .NET Framework výjimky a umožňuje objektům COM vracet smysluplné chybové informace spravovaným klientům.The common language runtime transforms well-known HRESULTs to .NET Framework exceptions, enabling COM objects to return meaningful error information to managed clients. Mapování HRESULT na výjimku funguje také ve druhém směru tím, že vrátí konkrétní hodnoty HRESULT nespravovanému klientovi.The HRESULT to exception mapping also works in the other direction by returning specific HRESULTs to unmanaged clients. Podrobnosti mapování naleznete v tématu How to: Mapování HRESULTs a Exceptions.For mapping details, see How to: Map HRESULTs and Exceptions.

Pokud modul runtime narazí na neznámou hodnotu HRESULT (HRESULT, která nemá konkrétní odpovídající výjimku), vyvolá instanci COMException třídy.When the runtime encounters an unfamiliar HRESULT (an HRESULT that lacks a specific, corresponding exception), it throws an instance of the COMException class. Tato veškerá výjimka zpřístupňuje stejné členy jako jakoukoli výjimku a dědí veřejnou ErrorCode vlastnost, která obsahuje HRESULT vrácenou volaný.This all-purpose exception exposes the same members as any exception, and inherits a public ErrorCode property that contains the HRESULT returned by the callee. Pokud je chybová zpráva k dispozici pro modul runtime (získaný z rozhraní IErrorInfo nebo Err objektu v Visual Basic nebo v některých případech z operačního systému), zpráva se vrátí volajícímu.If an error message is available to the runtime (obtained from the IErrorInfo interface or the Err object in Visual Basic, or in some cases from the operating system), the message is returned to the caller. Pokud však vývojář komponent modelu COM nedokáže zahrnout chybovou zprávu, modul runtime vrátí osmimístný kód HRESULT místo řetězce zprávy.However, if the COM component developer fails to include an error message, the runtime returns the eight-digit HRESULT in place of a message string. Máte-li HRESULT, umožňuje volajícímu určit příčinu obecné výjimky.Having an HRESULT allows the caller to determine the cause of the generic exception.

Zpracování výjimky COMExceptionHandling a COMException exception

Níže jsou uvedeny některé okolnosti pro řešení potíží COMException s výjimkou.The following are some considerations for troubleshooting a COMException exception.

ErrorCode Kontrolovat vlastnostCheck the ErrorCode property
Pokud modul runtime narazí na neznámou hodnotu HRESULT a COMException vyvolá výjimku, ErrorCode Tato vlastnost obsahuje buď chybovou zprávu, nebo, pokud není k dispozici chybová zpráva, hodnota s osmi číslicemi HRESULT.When the runtime encounters an unfamiliar HRESULT and throws a COMException exception, the ErrorCode property includes either the error message or, if an error message is unavailable, the eight-digit HRESULT value. Chybová zpráva nebo hodnota HRESULT vám může pomáhat určit příčinu výjimky.The error message or the HRESULT value can help you determine the cause of the exception.

Seznam hodnot HRESULT najdete v tématu běžné hodnoty HRESULT.For a list of HRESULT values, see Common HRESULT Values.

Argumenty a objekty systém Microsoft Office s pozdní vazbouLate-bound arguments and Microsoft Office objects
Při předání argumentů s pozdní vazbou metodám systém Microsoft Office objektů může být vyvolána COMException výjimka, pokud objekty jsou objekty com.When passing late-bound arguments to methods of Microsoft Office objects, a COMException exception may be thrown when the objects are COM objects. Zpožděný pořadač předpokládá, že taková volání metody zahrnují ByRef parametr a že předávaná vlastnost set má přistupující objekt.The late binder assumes that such method calls involve a ByRef parameter and that the property you pass has a set accessor. Pokud vlastnost není, .NET Framework generuje MissingMethodException výjimku (s hodnotou CORE_E_MISSINGMETHOD HRESULT).If the property does not, the .NET Framework generates a MissingMethodException exception (with a CORE_E_MISSINGMETHOD HRESULT ). Chcete-li toto chování obejít, použijte objekty s časnou vazbou nebo předejte proměnnou namísto vlastnosti objektu.To work around this behavior, use early-bound objects or pass a variable instead of a property of the object.

Visual Studio a hostitelský procesVisual Studio and the hosting process
Model COM se používá ke komunikaci mezi Visual Studio a hostitelským procesem.COM is used to communicate between Visual Studio and the hosting process. Protože se používá před spuštěním kódu, volání : CoInitializeSecurity způsobí vyvolání této výjimky.Because it is used before code runs, a call to CoInitializeSecurity causes this exception to be thrown.

V některých případech může být problém vyřešen spuštěním sady Visual Studio jako správce.In some cases, running Visual Studio as Administrator may resolve the issue. Můžete také zakázat hostitelský proces.You can also disable the hosting process.

Vyvolání výjimky COMExceptionThrowing a COMException exception

I když můžete použít COMException třídu pro vrácení konkrétních HRESULTS na nespravované klienty, vyvolání konkrétní výjimky .NET Framework je lepší než použití obecné výjimky.Although you can use the COMException class to return specific HRESULTs to unmanaged clients, throwing a specific .NET Framework exception is better than using a generic exception. Vezměte v úvahu, že spravované klienty i nespravované klienty mohou použít váš .NET Framework objekt a vyvolání HRESULT spravovanému volajícímu je méně srozumitelnější než vyvolání výjimky.Consider that managed clients as well as unmanaged clients can use your .NET Framework object, and throwing an HRESULT to a managed caller is less comprehensible than throwing an exception.

Konstruktory

COMException()

Inicializuje novou instanci COMException třídy s výchozími hodnotami.Initializes a new instance of the COMException class with default values.

COMException(SerializationInfo, StreamingContext)

Inicializuje novou instanci COMException třídy z dat serializace.Initializes a new instance of the COMException class from serialization data.

COMException(String)

Inicializuje novou instanci COMException třídy se zadanou zprávou.Initializes a new instance of the COMException class with a specified message.

COMException(String, Exception)

Inicializuje novou instanci třídy COMException třídy pomocí zadané chybové zprávy a odkazu na vnitřní výjimku, která je příčinou této výjimky.Initializes a new instance of the COMException class with a specified error message and a reference to the inner exception that is the cause of this exception.

COMException(String, Int32)

Inicializuje novou instanci COMException třídy se zadanou zprávou a kódem chyby.Initializes a new instance of the COMException class with a specified message and error code.

Vlastnosti

Data

Získá kolekci párů klíč/hodnota, které poskytují další uživatelsky definované informace o výjimce.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Zděděno od Exception)
ErrorCode

HRESULT Získá chybu.Gets the HRESULT of the error.

(Zděděno od ExternalException)
HelpLink

Získá nebo nastaví odkaz na soubor s nápovědě spojený s touto výjimkou.Gets or sets a link to the help file associated with this exception.

(Zděděno od Exception)
HResult

Získá nebo nastaví hodnotu HRESULT, kódované číselné hodnoty, která je přiřazena konkrétní výjimce.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Zděděno od Exception)
InnerException

Exception Získá instanci, která způsobila aktuální výjimku.Gets the Exception instance that caused the current exception.

(Zděděno od Exception)
Message

Získá zprávu s popisem aktuální výjimky.Gets a message that describes the current exception.

(Zděděno od Exception)
Source

Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu.Gets or sets the name of the application or the object that causes the error.

(Zděděno od Exception)
StackTrace

Načte řetězcovou reprezentaci okamžitých snímků v zásobníku volání.Gets a string representation of the immediate frames on the call stack.

(Zděděno od Exception)
TargetSite

Získá metodu, která vyvolá aktuální výjimku.Gets the method that throws the current exception.

(Zděděno od Exception)

Metody

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetBaseException()

Při přepsání v odvozené třídě vrátí hodnotu Exception , která je hlavní příčinou jedné nebo více následných výjimek.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Zděděno od Exception)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetObjectData(SerializationInfo, StreamingContext)

Při přepsání v odvozené třídě nastaví na SerializationInfo výjimku informace o výjimce.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Zděděno od Exception)
GetType()

Získá typ modulu runtime aktuální instance.Gets the runtime type of the current instance.

(Zděděno od Exception)
MemberwiseClone()

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Převede obsah výjimky na řetězec.Converts the contents of the exception to a string.

Události

SerializeObjectState

Nastane, pokud je serializovaná výjimka pro vytvoření objektu stavu výjimky, který obsahuje Serializovaná data o výjimce.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Zděděno od Exception)

Platí pro

Viz také