COMException Osztály

Definíció

Az a kivétel, amely akkor fordul elő, ha egy nem felismert HRESULT egy COM-metódushívásból származik.

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
Öröklődés
COMException
Öröklődés
Származtatott
Attribútumok

Megjegyzések

Az COMException osztály az a kivétel, amely akkor fordul elő, ha a rendszer nem felismert HRESULT-t ad vissza egy COM-metódushívásból.

A közös nyelvi futtatókörnyezet a jól ismert HRESULT-eket .NET-kivételekké alakítja át, így a COM-objektumok értelmes hibainformációkat adnak vissza a felügyelt ügyfeleknek. Az HRESULT-to-exception leképzés a másik irányban is működik, és konkrét HRESULT-okat juttat vissza nem menedzselt klienseknek. Az HRESULT-ek és kivételek leképezéséről szóló részletekért lásd: Hogyan kell leképezni az HRESULT-eket és a kivételeket.

Amikor a futtatókörnyezet ismeretlen HRESULT-tal találkozik (olyan HRESULT-tal, amelyhez nincs meghatározott, megfelelő kivétel), a COMException osztály egy példányát dobja ki. Ez a minden célra használható kivétel ugyanazokat a tagokat teszi elérhetővé, mint bármely más kivétel, és örököl egy nyilvános ErrorCode tulajdonságot, amely tartalmazza a hívó által visszaadott HRESULT értéket (egy visszatérési érték a hívástól). Ha egy hibaüzenet elérhető a futtatókörnyezet számára (az IErrorInfo felületről vagy a Err Visual Basic objektumából, vagy bizonyos esetekben az operációs rendszerből), a rendszer visszaadja az üzenetet a hívónak. Ha azonban a COM-összetevő fejlesztője nem tartalmaz hibaüzenetet, a futtatókörnyezet egy üzenetsztring helyett a nyolcjegyű HRESULT értéket adja vissza. A HRESULT használatával a hívó meghatározhatja az általános kivétel okát.

COMException kivétel kezelése

Az alábbiakban néhány szempontot figyelembe kell venni egy COMException kivétel hibaelhárításához.

Ellenőrizze a ErrorCode tulajdonságot, ha a futtatókörnyezet ismeretlen HRESULT-tal találkozik, és kivételt COMException jelez, a ErrorCode tulajdonság tartalmazza a hibaüzenetet, vagy ha egy hibaüzenet nem érhető el, a nyolcjegyű HRESULT értéket. A hibaüzenet vagy a HRESULT érték segíthet meghatározni a kivétel okát.

A HRESULT értékek listáját a Gyakori HRESULT értékek című témakörben találja.

Ha későn kötött argumentumokat ad át a Microsoft Office-objektumok metódusainak, kivételt okozhat, COMException ha az objektumok COM-objektumok. A késői iratgyűjtő feltételezi, hogy az ilyen metódushívások magukban foglalnak egy ByRef paramétert, és hogy az átadott tulajdonsághoz tartozik egy set hozzáférő. Ha a tulajdonság nem létezik, a .NET egy MissingMethodException kivételt hoz létre (egy CORE_E_MISSINGMETHOD HRESULT-tal). A viselkedés megkerüléséhez használjon korai kötésű objektumokat, vagy adjon át egy változót az objektum tulajdonsága helyett.

A COM a Visual Studio és az üzemeltetési folyamat közötti kommunikációra szolgál. Mivel a kód futtatása előtt használják, a CoInitializeSecurity hívása miatt ez a kivétel ki lesz dobva. Bizonyos esetekben a Visual Studio rendszergazdaként való futtatása megoldhatja a problémát. Az üzemeltetési folyamatot is letilthatja.

Dobja a COMException kivételt

Bár az COMException osztály használatával adott HRESULT-értékeket adhat vissza a nem felügyelt ügyfeleknek, egy adott .NET-kivétel eldobása jobb, mint egy általános kivétel használata. Vegye figyelembe, hogy a felügyelt ügyfelek és a nem felügyelt ügyfelek is használhatják a .NET-objektumot, és a HRESULT egy felügyelt hívónak való dobása kevésbé érthető, mint egy kivétel kivetése.

Konstruktorok

Name Description
COMException()

Inicializálja az osztály új példányát alapértelmezett COMException értékekkel.

COMException(SerializationInfo, StreamingContext)
Elavult.

Inicializálja az osztály új példányát a COMException szerializálási adatokból.

COMException(String, Exception)

Inicializálja az COMException osztály új példányát egy megadott hibaüzenettel és a kivétel okaként szolgáló belső kivételre mutató hivatkozással.

COMException(String, Int32)

Inicializálja az COMException osztály új példányát egy megadott üzenettel és hibakóddal.

COMException(String)

Inicializálja az COMException osztály új példányát egy megadott üzenettel.

Tulajdonságok

Name Description
Data

Lekéri a kulcs-/érték párok gyűjteményét, amelyek további, felhasználó által definiált információkat biztosítanak a kivételről.

(Öröklődés forrása Exception)
ErrorCode

Lekéri a HRESULT hibát.

(Öröklődés forrása ExternalException)
HelpLink

Lekéri vagy beállítja a kivételhez társított súgófájlra mutató hivatkozást.

(Öröklődés forrása Exception)
HResult

Lekéri vagy beállítja a HRESULT-ot, egy kódolt numerikus értéket, amely egy adott kivételhez van hozzárendelve.

(Öröklődés forrása Exception)
InnerException

Lekéri az Exception aktuális kivételt okozó példányt.

(Öröklődés forrása Exception)
Message

Az aktuális kivételt leíró üzenet jelenik meg.

(Öröklődés forrása Exception)
Source

Lekéri vagy beállítja az alkalmazás vagy a hibát okozó objektum nevét.

(Öröklődés forrása Exception)
StackTrace

Lekéri a hívásverem közvetlen kereteinek sztringképét.

(Öröklődés forrása Exception)
TargetSite

Lekéri az aktuális kivételt okozó metódust.

(Öröklődés forrása Exception)

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetBaseException()

Ha egy származtatott osztály felül van bírálva, egy Exception vagy több későbbi kivétel kiváltó okát adja vissza.

(Öröklődés forrása Exception)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetObjectData(SerializationInfo, StreamingContext)
Elavult.

Ha felül van bírálva egy származtatott osztályban, a SerializationInfo kivétel adatait adja meg.

(Öröklődés forrása Exception)
GetType()

Lekéri az aktuális példány futtatókörnyezeti típusát.

(Öröklődés forrása Exception)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

A kivétel tartalmát sztringgé alakítja.

ToString()

Létrehozza és visszaadja az aktuális kivétel sztring-ábrázolását.

(Öröklődés forrása Exception)

esemény

Name Description
SerializeObjectState
Elavult.

Akkor fordul elő, ha a kivétel szerializálva van egy kivételállapot-objektum létrehozásához, amely szerializált adatokat tartalmaz a kivételről.

(Öröklődés forrása Exception)

A következőre érvényes:

Lásd még