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.
This commit is contained in:
William S Fulton 2017-11-17 08:00:46 +00:00
commit 923091da13
8 changed files with 108 additions and 2 deletions

View file

@ -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());