A little more work on the Ruby support for C++ polymorphism. Exception

handling almost works...


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4745 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Logan Johnson 2003-04-29 16:08:16 +00:00
commit 3fd12995c7
5 changed files with 161 additions and 59 deletions

View file

@ -31,6 +31,7 @@ class SWIG_DIRECTOR_METHOD_EXCEPTION: public SWIG_DIRECTOR_EXCEPTION {};
%include "exception.i"
%include "std_string.i"
#ifdef SWIGPYTHON
%feature("director:except") {
if ($error != NULL) {
@ -43,6 +44,20 @@ class SWIG_DIRECTOR_METHOD_EXCEPTION: public SWIG_DIRECTOR_EXCEPTION {};
catch (SWIG_DIRECTOR_EXCEPTION &e) { SWIG_fail; }
}
#endif
#ifdef SWIGRUBY
%feature("director:except") {
throw SWIG_DIRECTOR_METHOD_EXCEPTION();
}
%exception {
try { $action }
catch (SWIG_DIRECTOR_EXCEPTION &e) { rb_raise(e.getType(), e.getMessage()); }
}
#endif
%feature("director") Foo;