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
Otros recursos
Funciones de Agregado de depuración y de notificación de errores