AtlThrow

Chiamare la funzione per segnalare un errore in base a un codice di stato HRESULT.

inline void AtlThrow(
   HRESULT hr
);

Parametri

  • hr
    Valore HRESULT standard.

Note

Questa funzione viene utilizzata da ATL e dal codice MFC in caso di condizione di errore.Può essere chiamata dal codice.L'implementazione predefinita di questa funzione dipende dalla definizione del simbolo _ATL_NO_EXCEPTIONS e dal tipo di progetto, ATL o MFC.

In tutti i casi, questa funzione traccia l'hresult al debugger.

Se _ATL_NO_EXCEPTIONS non è definito in un progetto MFC, genera di questa funzione CMemoryException o COleException in base al valore di HRESULT.

Se _ATL_NO_EXCEPTIONS non è definito in un progetto ATL, la funzione genera CAtlException.

Se _ATL_NO_EXCEPTIONS è definito, la funzione provoca un errore di asserzione anziché generare un'eccezione.

Per i progetti ATL, è possibile fornire un'implementazione personalizzata di questa funzione da utilizzare da ATL in caso di errore.A tale scopo, definire una funzione con la stessa firma AtlThrow e #define AtlThrow per essere il nome della funzione.Questa operazione deve essere eseguita prima inclusi atlexcept.h (cioé che deve essere eseguito prima dell'inclusione delle intestazioni ATL poiché atlbase.h include atlexcept.h).

Esempio

// 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 ..
};

Requisiti

Header: atldef.h

Vedere anche

Riferimenti

Classe di CAtlException

ATLTRACE2

Classe di CMemoryException

Classe di COleException

AtlThrowLastWin32

Altre risorse

Funzioni globali di segnalazione errori e il debug