diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2017-11-17 08:00:46 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2017-11-29 20:31:55 +0000 |
commit | 923091da13dcc572b5acf4d167d57c7e8fbf550f (patch) | |
tree | 33fb780c3b3faeef850392f26210053ac58398a3 /Lib/octave | |
parent | 077bb0b04fdb644af65dc83973137cf5dbbb9d5a (diff) | |
download | swig-923091da13dcc572b5acf4d167d57c7e8fbf550f.tar.gz |
Changes to use common DirectorException class
Add director.swg for Go as was completely absent.
This is just the start of a common exception handling approach to directors.
An exception thrown in a Java director method will be propogated back to
Java via a C++ DirectorException.
DirectorException throws typemap for Java is fully working, all other languages need work.
DirectorException throws typemap for Perl added just to fix compilation errors.
Add director_exception_catches test.
Diffstat (limited to 'Lib/octave')
-rw-r--r-- | Lib/octave/director.swg | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/Lib/octave/director.swg b/Lib/octave/director.swg index e80877ef6..86ac3b004 100644 --- a/Lib/octave/director.swg +++ b/Lib/octave/director.swg @@ -46,7 +46,22 @@ namespace Swig { } }; - struct DirectorTypeMismatchException { + // Base class for director exceptions. + class DirectorException : public std::exception { + public: + static void raise(const char *msg) { + // ... todo + throw(DirectorException()); + } + + static void raise(const octave_value &ov, const char *msg) { + // ... todo + raise(msg); + } + }; + + class DirectorTypeMismatchException : public DirectorException { + public: static void raise(const char *msg) { // ... todo throw(DirectorTypeMismatchException()); @@ -58,7 +73,8 @@ namespace Swig { } }; - struct DirectorPureVirtualException { + class DirectorPureVirtualException : public DirectorException { + public: static void raise(const char *msg) { // ... todo throw(DirectorPureVirtualException()); |