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