Program Listing for File Panic.hpp
↰ Return to documentation for file (include/lvr2/util/Panic.hpp)
#ifndef LVR2_UTIL_PANIC_H_
#define LVR2_UTIL_PANIC_H_
#include <exception>
#include <iostream>
#include <string>
namespace lvr2
{
struct PanicException : public std::exception
{
PanicException(std::string msg) : m_msg(msg) {}
virtual const char* what() const noexcept
{
return m_msg.c_str();
}
private:
std::string m_msg;
};
struct VertexLoopException : public std::exception
{
VertexLoopException(std::string msg) : m_msg(msg) {}
virtual const char* what() const noexcept
{
return m_msg.c_str();
}
private:
std::string m_msg;
};
inline void panic(std::string msg)
{
throw PanicException("Program panicked: " + msg);
}
inline void panic_unimplemented(std::string msg)
{
throw PanicException("Program panicked due to missing implementation: " + msg);
}
} // namespace lvr2
#endif // LVR2_UTIL_PANIC_H_