/trunk/Lib/typemaps/std_except.swg
Unknown | 96 lines | 79 code | 17 blank | 0 comment | 0 complexity | be1e4d0275c3c5f51e405c1065575e36 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %include <typemaps/exception.swg>
- %include <std/std_except.i>
- /*
- Mark all of std exception classes as "exception classes" via
- the "exceptionclass" feature.
-
- If needed, you can disable it by using %noexceptionclass.
- */
- %define %std_exception_map(Exception, Code)
- %exceptionclass Exception;
- #if !defined(SWIG_STD_EXCEPTIONS_AS_CLASSES)
- %typemap(throws,noblock=1) Exception {
- SWIG_exception_fail(Code, $1.what());
- }
- %ignore Exception;
- struct Exception {
- };
- #endif
- %enddef
- namespace std {
- %std_exception_map(bad_exception, SWIG_SystemError);
- %std_exception_map(domain_error, SWIG_ValueError);
- %std_exception_map(exception, SWIG_SystemError);
- %std_exception_map(invalid_argument, SWIG_ValueError);
- %std_exception_map(length_error, SWIG_IndexError);
- %std_exception_map(logic_error, SWIG_RuntimeError);
- %std_exception_map(out_of_range, SWIG_IndexError);
- %std_exception_map(overflow_error, SWIG_OverflowError);
- %std_exception_map(range_error, SWIG_OverflowError);
- %std_exception_map(runtime_error, SWIG_RuntimeError);
- %std_exception_map(underflow_error, SWIG_OverflowError);
- }
- #if defined(SWIG_STD_EXCEPTIONS_AS_CLASSES)
- namespace std {
- struct exception
- {
- virtual ~exception() throw();
- virtual const char* what() const throw();
- };
- struct bad_exception : exception
- {
- };
- struct logic_error : exception
- {
- logic_error(const string& msg);
- };
- struct domain_error : logic_error
- {
- domain_error(const string& msg);
- };
- struct invalid_argument : logic_error
- {
- invalid_argument(const string& msg);
- };
- struct length_error : logic_error
- {
- length_error(const string& msg);
- };
- struct out_of_range : logic_error
- {
- out_of_range(const string& msg);
- };
- struct runtime_error : exception
- {
- runtime_error(const string& msg);
- };
- struct range_error : runtime_error
- {
- range_error(const string& msg);
- };
- struct overflow_error : runtime_error
- {
- overflow_error(const string& msg);
- };
- struct underflow_error : runtime_error
- {
- underflow_error(const string& msg);
- };
- }
- #endif