PageRenderTime 36ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Lib/lua/std_except.i

#
Swig | 40 lines | 29 code | 3 blank | 8 comment | 0 complexity | 43d890676926aaef4d19631b3cf58ea4 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  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. #include <stdexcept>
  11. %}
  12. %include <exception.i>
  13. namespace std
  14. {
  15. %ignore exception; // not sure if I should ignore this...
  16. class exception
  17. {
  18. public:
  19. exception() throw() { }
  20. virtual ~exception() throw();
  21. virtual const char* what() const throw();
  22. };
  23. }
  24. // normally object which are thrown are returned to interpreter as errors
  25. // (which potentally may have problems if they are not copied)
  26. // therefore all classes based upon std::exception are converted to their strings & returned as errors
  27. %typemap(throws) std::bad_exception "SWIG_exception(SWIG_RuntimeError, $1.what());"
  28. %typemap(throws) std::domain_error "SWIG_exception(SWIG_ValueError, $1.what());"
  29. %typemap(throws) std::exception "SWIG_exception(SWIG_SystemError, $1.what());"
  30. %typemap(throws) std::invalid_argument "SWIG_exception(SWIG_ValueError, $1.what());"
  31. %typemap(throws) std::length_error "SWIG_exception(SWIG_IndexError, $1.what());"
  32. %typemap(throws) std::logic_error "SWIG_exception(SWIG_RuntimeError, $1.what());"
  33. %typemap(throws) std::out_of_range "SWIG_exception(SWIG_IndexError, $1.what());"
  34. %typemap(throws) std::overflow_error "SWIG_exception(SWIG_OverflowError, $1.what());"
  35. %typemap(throws) std::range_error "SWIG_exception(SWIG_IndexError, $1.what());"
  36. %typemap(throws) std::runtime_error "SWIG_exception(SWIG_RuntimeError, $1.what());"
  37. %typemap(throws) std::underflow_error "SWIG_exception(SWIG_RuntimeError, $1.what());"