Throw If Fails

I like to use this when writting sample code:

inline void Tif(HRESULT hResult) {

   if FAILED(hResult) {

      throw _com_error(hResult);

   }

}

inline void Tif(bool succeeded) {

   if (!succeeded) {

      DWORD lastError = GetLastError();

      throw win32_exception(lastError);

   }

}

inline void Tif(BOOL succeeded) {

   Tif(succeeded != FALSE); // And not == TRUE, thanks Mike!

}

 

The first exception type is defined in comdef.h and the second in win32_exception.h, in the std namespace.

Comments

  • Anonymous
    November 01, 2006
    Ack! Don't test a BOOL for equality with TRUE, always test != FALSE. With BOOL, any non-zero value counts as "true".