Partilhar via


AtlThrow

telefonar Esta função para sinalizar um erro baseia um HRESULT código de status.

inline void AtlThrow(
   HRESULT hr
);

Parâmetros

  • hr
    Valor HRESULT padrão.

Comentários

Esta função é usada pelo código ATL e MFC no evento uma condição de erro.Ele também pode ser chamado de seu próprio código.A implementação padrão dessa função varia de acordo com a definição do símbolo _ATL_NO_EXCEPTIONS e o tipo de projeto, MFC ou ATL.

Em todos os casos, essa função rastreia o HRESULT para o depurador.

If _ATL_NO_EXCEPTIONS não é definido em um projeto MFC, essa função lança um CMemoryException or a COleException com base no valor do HRESULT.

If _ATL_NO_EXCEPTIONS não é definido em um projeto ATL, a função lança um CAtlException.

If _ATL_NO_EXCEPTIONS é definida, a função faz com que um erro de declaração em vez de gerar uma exceção.

Para projetos ATL, é possível fornecer sua própria implementação desta função a ser usada pelo ATL no caso de falha.Para fazer isso, definir sua própria função com a mesma assinatura sistema autônomo AtlThrow e # define AtlThrow a ser o nome de sua função. Isso deve ser concluído antes de incluir atlexcept.h (o que significa que ele deve ser concluído antes incluindo os cabeçalhos ATL como atlbase.h inclui atlexcept.h).

Exemplo

// 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

Cabeçalho: atldef.h

Consulte também

Referência

Classe CAtlException

ATLTRACE2

Classe CMemoryException

Classe COleException

AtlThrowLastWin32

Outros recursos

Depuração e erro relatório funções global