pgLab/pgsql/Pgsql_PgException.cpp

55 lines
986 B
C++
Raw Normal View History

#include "Pgsql_PgException.h"
namespace Pgsql {
ResultCode::ResultCode(std::string result_code)
: m_resultCode(std::move(result_code))
{
assert(m_resultCode.length() == 5);
}
std::string ResultCode::getClass() const
{
return m_resultCode.substr(1,2);
}
/** Helper to easily check the class of the error
*
*/
bool ResultCode::isClass(const std::string_view cls)
{
return m_resultCode.compare(1, 2, cls);
}
const std::string& ResultCode::getSpecific() const
{
return m_resultCode;
}
PgException::PgException(const char *msg)
: std::runtime_error(msg)
{}
PgException::PgException(std::string msg)
: std::runtime_error(msg)
{}
PgResultError::PgResultError(const Pgsql::ErrorDetails &details)
: PgException(details.errorMessage)
, m_details(details)
{}
ResultCode PgResultError::getResultCode() const
{
return ResultCode(m_details.state);
}
const Pgsql::ErrorDetails& PgResultError::details() const
{
return m_details;
}
}