- improved Buffer exceptions
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@1038 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -6,8 +6,10 @@
|
||||
#include <exception>
|
||||
#include <algorithm>
|
||||
|
||||
#define EXC_MSG(code) (std::string(__PRETTY_FUNCTION__) + ", line " + std::to_string(__LINE__) + ", code " + std::to_string(code))
|
||||
|
||||
#ifdef PROCESSOR_BUFFER_USE_EXCEPTIONS
|
||||
#define RETURN_OR_EXCEPT(code) throw Buffer::Exception(code)
|
||||
#define RETURN_OR_EXCEPT(code) throw Buffer::Exception(EXC_MSG(code))
|
||||
#else
|
||||
#define RETURN_OR_EXCEPT(code) return code
|
||||
#endif
|
||||
@@ -32,19 +34,19 @@ class Buffer : public IBuffer
|
||||
|
||||
class Exception : public std::exception
|
||||
{
|
||||
std::string m_msg;
|
||||
|
||||
public:
|
||||
Exception(Result code)
|
||||
Exception(std::string msg)
|
||||
: std::exception()
|
||||
, m_code(code)
|
||||
, m_msg(msg)
|
||||
{
|
||||
|
||||
}
|
||||
const char* what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW
|
||||
{
|
||||
static std::string r = "Return code = " + std::to_string(m_code);
|
||||
return r.c_str();
|
||||
return m_msg.c_str();
|
||||
}
|
||||
Result m_code;
|
||||
|
||||
};
|
||||
Buffer(size_t capacity=0);
|
||||
|
||||
Reference in New Issue
Block a user