#pragma once #include #include namespace Base { class Exception : public std::runtime_error { public: using std::runtime_error::runtime_error; void reportException() const {} }; class RuntimeError : public Exception { public: using Exception::Exception; }; class ValueError : public Exception { public: using Exception::Exception; }; } // namespace Base #define FC_THROWM(type, message) \ do { \ std::ostringstream freecad_naming_probe_exception_stream; \ freecad_naming_probe_exception_stream << message; \ throw type(freecad_naming_probe_exception_stream.str()); \ } while (false)