git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@1067 b431acfa-c32f-4a4a-93f1-934dc6c82436
29 lines
582 B
C++
29 lines
582 B
C++
#ifndef __PROCESSOR_EXCEPTION_HPP__
|
|
#define __PROCESSOR_EXCEPTION_HPP__
|
|
|
|
#include <string>
|
|
#include <exception>
|
|
|
|
#define EXC_MSG(code) (std::string(__PRETTY_FUNCTION__) + ", line " + std::to_string(__LINE__) + ", code " + std::to_string(code))
|
|
#define EXC_EXCEPT(code) throw Exception(EXC_MSG(code))
|
|
|
|
class Exception : public std::exception
|
|
{
|
|
std::string m_msg;
|
|
|
|
public:
|
|
Exception(std::string msg)
|
|
: std::exception()
|
|
, m_msg(msg)
|
|
{
|
|
|
|
}
|
|
const char* what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW
|
|
{
|
|
return m_msg.c_str();
|
|
}
|
|
|
|
};
|
|
|
|
#endif // __PROCESSOR_EXCEPTION_HPP__
|