Index: src/libchcore/TCoreException.cpp =================================================================== diff -u -N -re9926b6e83984d0f30bf2008b93874c7c483d95c -r5fd6beaad9f1eccb664b997d151acb59961e4827 --- src/libchcore/TCoreException.cpp (.../TCoreException.cpp) (revision e9926b6e83984d0f30bf2008b93874c7c483d95c) +++ src/libchcore/TCoreException.cpp (.../TCoreException.cpp) (revision 5fd6beaad9f1eccb664b997d151acb59961e4827) @@ -19,34 +19,51 @@ #include "stdafx.h" #include "TCoreException.h" +BEGIN_CHCORE_NAMESPACE + // ============================================================================ /// chcore::TCoreException::TCoreException /// @date 2009/11/30 /// -/// @brief Constructs the core exception object. -/// @param[in] eErrorCode - error code -/// @param[in] pszInternalError - internal error message +/// @brief Constructs core exception object with additional data. +/// @param[in] eErrorCode - error code +/// @param[in] pszFile - source file name +/// @param[in] stLineNumber - source line number +/// @param[in] pszFunction - function name in which the problem occured. // ============================================================================ -BEGIN_CHCORE_NAMESPACE +TCoreException::TCoreException(EGeneralErrors eErrorCode, const tchar_t* pszFile, size_t stLineNumber, const tchar_t* pszFunction) : + m_eErrorCode(eErrorCode), + m_pszFile(pszFile), + m_stLineNumber(stLineNumber), + m_pszFunction(pszFunction) +{ + BOOST_ASSERT(false); +} // ============================================================================ /// chcore::TCoreException::TCoreException /// @date 2009/11/30 /// /// @brief Constructs core exception object with additional data. -/// @param[in] eErrorCode - error code -/// @param[in] pszInternalError - error description +/// @param[in] eErrorCode - error code +/// @param[in] stdException - standard exception info /// @param[in] pszFile - source file name /// @param[in] stLineNumber - source line number /// @param[in] pszFunction - function name in which the problem occured. // ============================================================================ -TCoreException::TCoreException(EGeneralErrors eErrorCode, const tchar_t* pszFile, size_t stLineNumber, const tchar_t* pszFunction) : +TCoreException::TCoreException(EGeneralErrors eErrorCode, std::exception& stdException, const tchar_t* pszFile, size_t stLineNumber, const tchar_t* pszFunction) : + std::exception(stdException), m_eErrorCode(eErrorCode), m_pszFile(pszFile), - m_strLineNumber(stLineNumber), + m_stLineNumber(stLineNumber), m_pszFunction(pszFunction) { - BOOST_ASSERT(false); } +void TCoreException::GetErrorInfo(wchar_t* pszBuffer, size_t stMaxBuffer) const +{ + _snwprintf_s(pszBuffer, stMaxBuffer, _TRUNCATE, _T("Error code: %ld\r\nFile: %s\r\nFunction: %s\r\nLine no: %lu"), m_eErrorCode, m_pszFile, m_pszFunction, m_stLineNumber); + pszBuffer[stMaxBuffer - 1] = _T('\0'); +} + END_CHCORE_NAMESPACE