---
description: "Learn more about: Platform::COMException Class"
title: "Platform::COMException Class"
ms.date: "12/30/2016"
ms.topic: "reference"
f1_keywords: ["VCCORLIB/Platform::COMException", "VCCORLIB/Platform::COMException::HResult", "VCCORLIB/Platform::COMException::Message"]
helpviewer_keywords: ["Platform::COMException Class"]
ms.assetid: 44fda4e5-574f-4d12-ab5f-4ff3f277448d
---
# Platform::COMException Class
Represents COM errors that occur during application execution. COMException is the base class for a set of predefined, standard exceptions.
## Syntax
```cpp
public ref class COMException : Exception, IException, IPrintable, IEquatable
```
### Members
The COMException class inherits from the Object class and the IException, IPrintable, and IEquatable interfaces.
COMException also has the following types of members.
**Constructors**
|Member|Description|
|------------|-----------------|
|[COMException](#ctor)|Initializes a new instance of the COMException class.|
**Methods**
The COMException class inherits the Equals(), Finalize(), GetHashCode(), GetType(), MemberwiseClose(), and ToString() methods from the [Platform::Object Class](../cppcx/platform-object-class.md).
**Properties**
The COMException class has the following properties.
|Member|Description|
|------------|-----------------|
|[Exception::HResult](#hresult)|The HRESULT that corresponds to the exception.|
|[Exception::Message](#message)|Message that describes the exception.|
## Derived Exceptions
The following predefined exceptions are derived from COMException. They differ from COMException only in their name, the name of their constructor, and their underlying HRESULT value.
|Name|Underlying HRESULT|Description|
|----------|------------------------|-----------------|
|COMException|*user-defined hresult*|Thrown when an unrecognized HRESULT is returned from a COM method call.|
|AccessDeniedException|E_ACCESSDENIED|Thrown when access is denied to a resource or feature.|
|ChangedStateException|E_CHANGED_STATE|Thrown when methods of a collection iterator or a collection view are called after the parent collection has changed, invalidating the results of the method.|
|ClassNotRegisteredException|REGDB_E_CLASSNOTREG|Thrown when a COM class has not been registered.|
|DisconnectedException|RPC_E_DISCONNECTED|Thrown when an object is disconnected from its clients.|
|FailureException|E_FAIL|Thrown when an operation fails.|
|InvalidArgumentException|E_INVALIDARG|Thrown when one of the arguments provided to a method is not valid.|
|InvalidCastException|E_NOINTERFACE|Thrown when a type can't be cast to another type.|
|NotImplementedException|E_NOTIMPL|Thrown if an interface method hasn't been implemented on a class.|
|NullReferenceException|E_POINTER|Thrown when there is an attempt to dereference a null object reference.|
|OperationCanceledException|E_ABORT|Thrown when an operation is aborted.|
|OutOfBoundsException|E_BOUNDS|Thrown when an operation attempts to access data outside the valid range.|
|OutOfMemoryException|E_OUTOFMEMORY|Thrown when there's insufficient memory to complete the operation.|
### Requirements
**Minimum supported client:** Windows 8
**Minimum supported server:** Windows Server 2012
**Namespace:** Platform
**Metadata:** platform.winmd
## COMException::COMException Constructor
Intializes a new instance of the COMException class.
### Syntax
```cpp
COMException( int hresult )
```
### Parameters
*hresult*
The error HRESULT that is represented by the exception.
## COMException::HResult Property
The HRESULT that corresponds to the exception.
### Syntax
```cpp
public:
property int HResult { int get();}
```
## Property Value
An HRESULT value that specifies the error.
### Remarks
For more information about how to interpret the HRESULT value, see [Structure of COM Error Codes](/windows/win32/com/structure-of-com-error-codes).
## COMException::Message Property
Message that describes the exception.
### Syntax
```cpp
public:property String^ Message { String^ get();}
```
### Property Value
A description of the exception.
## See also
[Platform namespace](../cppcx/platform-namespace-c-cx.md)