Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
2.0 KiB

  1. /* -----------------------------------------------------------------------------
  2. * See the LICENSE file for information on copyright, usage and redistribution
  3. * of SWIG, and the README file for authors - http://www.swig.org/release.html.
  4. *
  5. * Typemaps used by the STL wrappers that throw exceptions.
  6. * These typemaps are used when methods are declared with an STL exception
  7. * specification, such as:
  8. * size_t at() const throw (std::out_of_range);
  9. *
  10. * std_except.i
  11. * ----------------------------------------------------------------------------- */
  12. %{
  13. #include <stdexcept>
  14. %}
  15. %include <exception.i>
  16. namespace std
  17. {
  18. %ignore exception; // not sure if I should ignore this...
  19. class exception
  20. {
  21. public:
  22. exception() throw() { }
  23. virtual ~exception() throw();
  24. virtual const char* what() const throw();
  25. };
  26. }
  27. // normally object whihc are thrown are returned to interpreter as errors
  28. // (which potentally 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());"