COMException Klas

Definitie

De uitzondering die wordt gegenereerd wanneer een niet-herkende HRESULT wordt geretourneerd vanuit een COM-methodeaanroep.

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
Overname
COMException
Overname
Afgeleid
Kenmerken

Opmerkingen

De COMException klasse is de uitzondering die wordt gegenereerd wanneer een niet-herkende HRESULT wordt geretourneerd vanuit een COM-methodeaanroep.

De algemene taalruntime transformeert bekende HRESULTs naar .NET-uitzonderingen, waardoor COM-objecten zinvolle foutinformatie kunnen retourneren aan beheerde clients. De toewijzing van HRESULT-naar-uitzondering werkt ook in de andere richting door specifieke HRESULT's te retourneren aan niet-beheerde clients. Raadpleeg How to map HRESULTs and exceptions voor toewijzingsdetails.

Wanneer de runtime een onbekende HRESULT tegenkomt (een HRESULT die een specifieke, bijbehorende uitzondering mist), wordt er een exemplaar van de COMException klasse gegenereerd. Deze allesomvattende uitzondering toont dezelfde leden als andere uitzonderingen en erft een openbare ErrorCode eigenschap die het HRESULT bevat dat door de aangeroepen functie wordt geretourneerd. Als er een foutbericht beschikbaar is voor de runtime (verkregen via de IErrorInfo-interface of het Err object in Visual Basic of in sommige gevallen van het besturingssysteem), wordt het bericht geretourneerd naar de aanroeper. Als de COM-onderdeelontwikkelaar echter geen foutbericht kan opnemen, retourneert de runtime het achtcijferige HRESULT in plaats van een berichttekenreeks. Als u een HRESULT hebt, kan de beller de oorzaak van de algemene uitzondering bepalen.

Een COMException-uitzondering verwerken

Hier volgen enkele overwegingen voor het oplossen van problemen met een COMException uitzondering.

Controleer de ErrorCode eigenschap Wanneer de runtime een onbekende HRESULT tegenkomt en een COMException uitzondering genereert, bevat de ErrorCode eigenschap het foutbericht of, als er een foutbericht niet beschikbaar is, de waarde van HRESULT met acht cijfers. Het foutbericht of de HRESULT-waarde kan u helpen de oorzaak van de uitzondering te bepalen.

Zie Algemene HRESULT-waarden voor een lijst met HRESULT-waarden.

Wanneer u late gebonden argumenten doorgeeft aan methoden van Microsoft Office-objecten, kan er een COMException uitzondering worden gegenereerd wanneer de objecten COM-objecten zijn. De late binder gaat ervan uit dat dergelijke methode-aanroepen betrekking hebben op een ByRef parameter en dat de eigenschap die u doorgeeft een set accessor heeft. Als de eigenschap dit niet doet, genereert .NET een MissingMethodException uitzondering (met een CORE_E_MISSINGMETHOD HRESULT). Als u dit gedrag wilt omzeilen, gebruikt u vroeggebonden objecten of geeft u een variabele door in plaats van een eigenschap van het object.

COM wordt gebruikt om te communiceren tussen Visual Studio en het hostingproces. Omdat deze wordt gebruikt voordat code wordt uitgevoerd, zorgt een aanroep van CoInitializeSecurity ervoor dat deze uitzondering wordt gegenereerd. In sommige gevallen kan het probleem worden opgelost door Visual Studio als administrator uit te voeren. U kunt het hostingproces ook uitschakelen.

Een COMException-uitzondering genereren

Hoewel u de COMException klasse kunt gebruiken om specifieke HRESULT's te retourneren aan onbeheerde clients, is het genereren van een specifieke .NET-uitzondering beter dan het gebruik van een algemene uitzondering. Houd er rekening mee dat beheerde clients en niet-beheerde clients uw .NET-object kunnen gebruiken en dat het genereren van een HRESULT voor een beheerde beller minder begrijpelijk is dan het genereren van een uitzondering.

Constructors

Name Description
COMException()

Initialiseert een nieuw exemplaar van de COMException klasse met standaardwaarden.

COMException(SerializationInfo, StreamingContext)
Verouderd.

Initialiseert een nieuw exemplaar van de COMException klasse op basis van serialisatiegegevens.

COMException(String, Exception)

Initialiseert een nieuw exemplaar van de COMException klasse met een opgegeven foutbericht en een verwijzing naar de binnenste uitzondering die de oorzaak van deze uitzondering is.

COMException(String, Int32)

Initialiseert een nieuw exemplaar van de COMException klasse met een opgegeven bericht en foutcode.

COMException(String)

Initialiseert een nieuw exemplaar van de COMException klasse met een opgegeven bericht.

Eigenschappen

Name Description
Data

Hiermee haalt u een verzameling sleutel-waardeparen op die aanvullende door de gebruiker gedefinieerde informatie over de uitzondering bieden.

(Overgenomen van Exception)
ErrorCode

Hiermee wordt de HRESULT fout weergegeven.

(Overgenomen van ExternalException)
HelpLink

Hiermee haalt u een koppeling op naar het Help-bestand dat aan deze uitzondering is gekoppeld.

(Overgenomen van Exception)
HResult

Hiermee wordt HRESULT opgehaald of ingesteld, een gecodeerde numerieke waarde die is toegewezen aan een specifieke uitzondering.

(Overgenomen van Exception)
InnerException

Hiermee haalt u het Exception exemplaar op dat de huidige uitzondering heeft veroorzaakt.

(Overgenomen van Exception)
Message

Hiermee wordt een bericht weergegeven waarin de huidige uitzondering wordt beschreven.

(Overgenomen van Exception)
Source

Hiermee wordt de naam van de toepassing of het object dat de fout veroorzaakt, opgehaald of ingesteld.

(Overgenomen van Exception)
StackTrace

Hiermee haalt u een tekenreeksweergave van de directe frames op de aanroepstack op.

(Overgenomen van Exception)
TargetSite

Hiermee haalt u de methode op waarmee de huidige uitzondering wordt gegenereerd.

(Overgenomen van Exception)

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetBaseException()

Wanneer deze wordt overschreven in een afgeleide klasse, retourneert u de Exception hoofdoorzaak van een of meer volgende uitzonderingen.

(Overgenomen van Exception)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetObjectData(SerializationInfo, StreamingContext)
Verouderd.

Wanneer deze wordt overschreven in een afgeleide klasse, stelt u de SerializationInfo met informatie over de uitzondering in.

(Overgenomen van Exception)
GetType()

Hiermee haalt u het runtimetype van het huidige exemplaar op.

(Overgenomen van Exception)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Converteert de inhoud van de uitzondering naar een tekenreeks.

ToString()

Hiermee maakt en retourneert u een tekenreeksweergave van de huidige uitzondering.

(Overgenomen van Exception)

gebeurtenis

Name Description
SerializeObjectState
Verouderd.

Treedt op wanneer een uitzondering wordt geserialiseerd om een uitzonderingsstatusobject te maken dat geserialiseerde gegevens over de uitzondering bevat.

(Overgenomen van Exception)

Van toepassing op

Zie ook