Home | History | Annotate | Download | only in lua
      1 /* -----------------------------------------------------------------------------
      2  * Typemaps used by the STL wrappers that throw exceptions.
      3  * These typemaps are used when methods are declared with an STL exception
      4  * specification, such as:
      5  *   size_t at() const throw (std::out_of_range);
      6  *
      7  * std_except.i
      8  * ----------------------------------------------------------------------------- */
      9 
     10 %{
     11 #include <stdexcept>
     12 %}
     13 %include <exception.i>
     14 
     15 namespace std
     16 {
     17   %ignore exception; // not sure if I should ignore this...
     18   class exception
     19   {
     20   public:
     21     exception() throw() { }
     22     virtual ~exception() throw();
     23     virtual const char* what() const throw();
     24   };
     25 }
     26 
     27 // normally objects which are thrown are returned to the interpreter as errors
     28 // (which potentially may have problems if they are not copied)
     29 // therefore all classes based upon std::exception are converted to their strings & returned as errors
     30 %typemap(throws) std::bad_exception     "SWIG_exception(SWIG_RuntimeError, $1.what());"
     31 %typemap(throws) std::domain_error      "SWIG_exception(SWIG_ValueError, $1.what());"
     32 %typemap(throws) std::exception         "SWIG_exception(SWIG_SystemError, $1.what());"
     33 %typemap(throws) std::invalid_argument  "SWIG_exception(SWIG_ValueError, $1.what());"
     34 %typemap(throws) std::length_error      "SWIG_exception(SWIG_IndexError, $1.what());"
     35 %typemap(throws) std::logic_error       "SWIG_exception(SWIG_RuntimeError, $1.what());"
     36 %typemap(throws) std::out_of_range      "SWIG_exception(SWIG_IndexError, $1.what());"
     37 %typemap(throws) std::overflow_error    "SWIG_exception(SWIG_OverflowError, $1.what());"
     38 %typemap(throws) std::range_error       "SWIG_exception(SWIG_IndexError, $1.what());"
     39 %typemap(throws) std::runtime_error     "SWIG_exception(SWIG_RuntimeError, $1.what());"
     40 %typemap(throws) std::underflow_error   "SWIG_exception(SWIG_RuntimeError, $1.what());"
     41