Compartir a través de


AtlThrow

Llame a esta función para notificar un error basado en un código de estado de HRESULT .

inline void AtlThrow(
   HRESULT hr
);

Parámetros

  • hr
    Valor estándar de HRESULT.

Comentarios

Esta función usa ATL y MFC codifica en caso de condición de error.También puede llamar desde su propio código.La implementación predeterminada de esta función depende de la definición del símbolo _ATL_NO_EXCEPTIONS y el tipo de proyecto, MFC o ATL.

En todos los casos, esta función seguimiento el HRESULT el depurador.

Si _ATL_NO_EXCEPTIONS no se define en un proyecto MFC, los tiros de esta función CMemoryException o COleException según el valor de HRESULT.

Si _ATL_NO_EXCEPTIONS no está definido en un proyecto ATL, la función produce CAtlException.

Si _ATL_NO_EXCEPTIONS está definido, la función produce un error de aserción en lugar de producir una excepción.

Para los proyectos ATL, es posible proporcionar su propia implementación de esta función que se utilizará para ATL en caso de error.Para ello, defina su propia función con la misma signatura que AtlThrow y el #define AtlThrow para ser el nombre de la función.Esto se debe hacer antes incluso atlexcept.h (lo que significa que debe hacer antes de incluir cualquier encabezado ATL ya que atlbase.h incluye atlexcept.h).

Ejemplo

// Constructors and operators cannot return error codes, and
// so they are the place where exceptions are generally used.
class CMyClass
{
private:
   CComPtr<IBuddy> m_spBuddy;
public:
   CMyClass()
   {
      HRESULT hr = m_spBuddy.CoCreateInstance(CLSID_Buddy);
      if (FAILED(hr))
         AtlThrow(hr);
   }
   //   methods ..
};

Requisitos

encabezado: atldef.h

Vea también

Referencia

Clase de CAtlException

ATLTRACE2

Clase de CMemoryException

Clase de COleException

AtlThrowLastWin32

Otros recursos

Funciones de Agregado de depuración y de notificación de errores