COMException Třída

Definice

Výjimka, která je vyvolána při nerozpoznané HRESULT je vrácena z volání metody COM.

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
Dědičnost
COMException
Dědičnost
Odvozené
Atributy

Poznámky

Třída COMException je výjimka, která je vyvolána, když je vrácena nerozpoznaná hodnota HRESULT z volání metody COM.

Modul CLR (Common Language Runtime) transformuje známé HRESULT na výjimky .NET a umožňuje objektům COM vracet smysluplné informace o chybách spravovaným klientům. Mapování HRESULT na výjimku funguje také v opačném směru tak, že vrací konkrétní HRESULTy klientům bez správy. Podrobnosti o mapování najdete v tématu Mapování HRESULT a výjimek.

Pokud modul runtime narazí na neznámé HRESULT (HRESULT, který nemá konkrétní odpovídající výjimku), vyvolá instanci COMException třídy. Tato výjimka pro všechny účely zveřejňuje stejné členy jako jakoukoli výjimku a dědí veřejnou ErrorCode vlastnost, která obsahuje HRESULT vrácený volaným. Pokud je pro modul runtime k dispozici chybová zpráva (získaná z rozhraní IErrorInfo nebo Err objektu v jazyce Visual Basic nebo v některých případech z operačního systému), vrátí se zpráva volajícímu. Pokud ale vývojář komponenty COM nezahrne chybovou zprávu, vrátí modul runtime místo řetězce zprávy osmimístnou hodnotu HRESULT. Funkce HRESULT umožňuje volajícímu určit příčinu obecné výjimky.

Zpracování výjimky COMException

Tady jsou některé aspekty řešení potíží s COMException výjimkou.

Zkontrolujte vlastnost ErrorCode. Když modul runtime narazí na neznámé HRESULT a vyvolá výjimku COMException, vlastnost ErrorCode obsahuje buď chybovou zprávu, nebo pokud je chybová zpráva nedostupná, osmimístnou hodnotu HRESULT. S určením příčiny výjimky vám může pomoct chybová zpráva nebo hodnota HRESULT.

Seznam hodnot HRESULT naleznete v části Běžné hodnoty HRESULT.

Při předávání argumentů s pozdní vazbou do metod objektů systém Microsoft Office může být vyvolána výjimka, pokud jsou objekty COM objekty. Pozdní pořadač předpokládá, že taková volání metody zahrnují ByRef parametr a že vlastnost, kterou předáte, má set příslušenství. Pokud vlastnost nefunguje, .NET vygeneruje výjimku MissingMethodException (s HRESULT CORE_E_MISSINGMETHOD). Chcete-li toto chování obejít, použijte objekty s časnou vazbou nebo předejte proměnnou místo vlastnosti objektu.

Com slouží ke komunikaci mezi sadou Visual Studio a procesem hostování. Protože se používá před spuštěním kódu, volání CoInitializeSecurity způsobí vyvolání této výjimky. V některých případech může problém vyřešit spuštění sady Visual Studio jako správce. Proces hostování můžete také zakázat.

Vyvolejte výjimku COMException

I když můžete COMException třídu použít k vrácení konkrétního HRESULT nespravovaným klientům, vyvolání konkrétní výjimky .NET je lepší než použití obecné výjimky. Vezměte v úvahu, že spravované klienty i nespravované klienty mohou používat váš objekt .NET a vyvolání HRESULT spravovanému volajícímu je méně srozumitelné než vyvolání výjimky.

Konstruktory

Name Description
COMException()

Inicializuje novou instanci COMException třídy s výchozími hodnotami.

COMException(SerializationInfo, StreamingContext)
Zastaralé.

Inicializuje novou instanci COMException třídy z serializace dat.

COMException(String, Exception)

Inicializuje novou instanci COMException třídy se zadanou chybovou zprávou a odkazem na vnitřní výjimku, která je příčinou této výjimky.

COMException(String, Int32)

Inicializuje novou instanci COMException třídy se zadanou zprávou a kódem chyby.

COMException(String)

Inicializuje novou instanci COMException třídy se zadanou zprávou.

Vlastnosti

Name Description
Data

Získá kolekci párů klíč/hodnota, které poskytují další uživatelem definované informace o výjimce.

(Zděděno od Exception)
ErrorCode

HRESULT Získá chybu.

(Zděděno od ExternalException)
HelpLink

Získá nebo nastaví odkaz na soubor nápovědy přidružený k této výjimce.

(Zděděno od Exception)
HResult

Získá nebo nastaví HRESULT, kódovanou číselnou hodnotu, která je přiřazena ke konkrétní výjimce.

(Zděděno od Exception)
InnerException

Exception Získá instanci, která způsobila aktuální výjimku.

(Zděděno od Exception)
Message

Získá zprávu, která popisuje aktuální výjimku.

(Zděděno od Exception)
Source

Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu.

(Zděděno od Exception)
StackTrace

Získá řetězcové znázornění okamžitých rámců v zásobníku volání.

(Zděděno od Exception)
TargetSite

Získá metodu, která vyvolá aktuální výjimku.

(Zděděno od Exception)

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Při přepsání v odvozené třídě vrátí Exception to, že je původní příčinou jedné nebo více následných výjimek.

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

Slouží jako výchozí funkce hash.

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

Při přepsání v odvozené třídě nastaví SerializationInfo s informacemi o výjimce.

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

Získá typ modulu runtime aktuální instance.

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

Vytvoří mělkou kopii aktuálního Object.

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

Převede obsah výjimky na řetězec.

ToString()

Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky.

(Zděděno od Exception)

Událost

Name Description
SerializeObjectState
Zastaralé.

Nastane, když je výjimka serializována vytvořit objekt stavu výjimky, který obsahuje serializovaná data o výjimce.

(Zděděno od Exception)

Platí pro

Viz také