23 #ifndef CASADI_EXCEPTION_HPP 24 #define CASADI_EXCEPTION_HPP 63 virtual const char*
what()
const throw(){
88 #define casadi_assert(x) 89 #define casadi_assert_message(x,msg) 90 #define casadi_assert_warning(x,msg) 91 #define casadi_warning(msg) 92 #define casadi_error(msg) 94 #else // CASADI_NDEBUG 97 #define CASADI_ASSERT_STR1(x) #x 98 #define CASADI_ASSERT_STR(x) CASADI_ASSERT_STR1(x) 101 #define CASADI_ASSERT_WHERE " on line " CASADI_ASSERT_STR(__LINE__) " of file " CASADI_ASSERT_STR(__FILE__) 103 #define casadi_log(msg) \ 105 std::cout << "CasADi log message: " << msg << std::endl; \ 108 #define casadi_error(msg) \ 110 std::stringstream ss_internal_; \ 111 ss_internal_ << CASADI_ASSERT_WHERE << std::endl << msg << std::endl; \ 112 throw CasADi::CasadiException(ss_internal_.str()); \ 116 #define casadi_assert_message(x,msg) \ 121 } catch(std::exception& ex){ \ 122 throw CasADi::CasadiException(std::string("When trying to check the assertion \"" CASADI_ASSERT_STR(x) "\"" CASADI_ASSERT_WHERE ", caught: \n")+ex.what());\ 125 std::stringstream ss_internal_; \ 126 ss_internal_ << "The assertion \"" CASADI_ASSERT_STR(x) "\"" CASADI_ASSERT_WHERE " failed. " << std::endl << msg << std::endl; \ 127 throw CasADi::CasadiException(ss_internal_.str()); \ 132 #define casadi_assert(x) casadi_assert_message(x,"(Hint for developers: CasadiOptions.setCatchErrorsPython(False) to obtain gdb stacktrace in python.)" << std::endl << "Please notify the CasADi developers.") 135 #define casadi_assert_warning(x,msg) \ 137 std::cerr << "CasADi warning: \"" << msg << "\" (assertion \"" CASADI_ASSERT_STR(x) "\"" CASADI_ASSERT_WHERE " failed.)" << std::endl;\ 141 #define casadi_warning(msg) \ 142 std::cerr << "CasADi warning: \"" << msg << "\" issued " CASADI_ASSERT_WHERE ". " << std::endl; 144 #endif // CASADI_NDEBUG 148 #endif // CASADI_EXCEPTION_HPP CasadiException()
Default constructor.
CasadiException & operator<<(const std::exception &ex)
Append an exception.
virtual const char * what() const
Display error.
CasadiException & operator<<(const std::string &msg)
Append a message.
CasadiException(const std::string &msg)
Form message string.
~CasadiException()
Destructor.