Udostępnij za pośrednictwem


AtlThrow

Wywołanie tej funkcji, aby zasygnalizować błąd na podstawie HRESULT kod stanu.

inline void AtlThrow(
   HRESULT hr
);

Parametry

  • hr
    Standardowe wartości HRESULT.

Uwagi

Ta funkcja jest używana przez kod ATL i MFC, w przypadku wystąpienia błędu.Może ona również wywołana z własnego kodu.Domyślna implementacja tej funkcji zależy od definicji symbolu _ATL_NO_EXCEPTIONS i typu projektu, MFC lub ATL.

We wszystkich przypadkach ta funkcja służy do śledzenia HRESULT do debugera.

Jeśli _ATL_NO_EXCEPTIONS nie jest zdefiniowany w projekcie MFC ta funkcja generuje CMemoryException lub COleException na podstawie wartości HRESULT.

Jeśli _ATL_NO_EXCEPTIONS nie jest zdefiniowany w projekcie ATL, rzuca funkcji CAtlException.

Jeśli _ATL_NO_EXCEPTIONS jest określone, funkcja powoduje błąd potwierdzenia zgłaszanie wyjątku.

W projektach ATL jest możliwe dostarczenie implementacji tej funkcji używane przez ATL w przypadku awarii.Aby to zrobić, należy zdefiniować funkcji z samych sygnaturach AtlThrow i # define AtlThrow nazwa funkcji.Należy to zrobić przed tym atlexcept.h (co oznacza, że musi być wykonany przed tym żadnych nagłówków ATL, ponieważ atlbase.h obejmuje atlexcept.h).

Przykład

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

Wymagania

Nagłówek: atldef.h

Zobacz też

Informacje

Klasa CAtlException

ATLTRACE2

Klasa CMemoryException

Klasa COleException

AtlThrowLastWin32

Inne zasoby

Debugowanie i globalne funkcje raportowania błędów