AtlThrow
신호에 따라 오류를이 함수를 호출 하는 HRESULT 상태 코드입니다.
inline void AtlThrow(
HRESULT hr
);
매개 변수
- hr
표준 HRESULT 값입니다.
설명
이 함수가 MFC 및 ATL 코드 오류가 발생 한 경우 사용 됩니다.또한 코드에서 호출할 수 있습니다.이 함수는 기본 구현 기호 정의에 따라 _ATL_NO_EXCEPTIONS 및 MFC 나 ATL 프로젝트의 종류
모든 경우에이 함수가 HRESULT 디버거를 추적합니다.
경우 _ATL_NO_EXCEPTIONS 정의 되지 않은이 함수는 MFC 프로젝트에서 throw 한 CMemoryException 또는 COleException HRESULT 값을 기준으로 합니다.
경우 _ATL_NO_EXCEPTIONS 함수가 throw ATL 프로젝트에 정의 되어 있지 않습니다는 CAtlException.
경우 _ATL_NO_EXCEPTIONS 는 정의 함수 어설션 오류가 아닌 예외를 throw 됩니다.
ATL 프로젝트를 ATL에서 오류가 발생 한 데이 함수를 직접 구현 하는 것이 가능 합니다.이 위해서는 함수는 동일한 시그니처를 정의 AtlThrow 및 # define AtlThrow 함수의 이름입니다.이 atlexcept.h atlbase.h 포함 되므로 모든 ATL 헤더를 포함 하 여 전에 수행 해야 즉 atlexcept.h를 포함 하기 전에 수행 되어야 합니다.
예제
// 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 ..
};
요구 사항
헤더: atldef.h