mirror of https://github.com/swig/swig
test using declaration for methods with an exception specification
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7214 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
ad46f2ef3e
commit
fcf2afc3a9
|
@ -0,0 +1,32 @@
|
|||
|
||||
import using_pointers.*;
|
||||
|
||||
public class using_pointers_runme {
|
||||
|
||||
static {
|
||||
try {
|
||||
System.loadLibrary("using_pointers");
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String argv[])
|
||||
{
|
||||
FooBar f = new FooBar();
|
||||
boolean pass = true;
|
||||
try {
|
||||
f.exception_spec(1);
|
||||
pass = false;
|
||||
} catch (RuntimeException e) {
|
||||
}
|
||||
if (!pass) throw new RuntimeException("Missed exception 1");
|
||||
try {
|
||||
f.exception_spec(2);
|
||||
pass = false;
|
||||
} catch (RuntimeException e) {
|
||||
}
|
||||
if (!pass) throw new RuntimeException("Missed exception 2");
|
||||
}
|
||||
}
|
|
@ -6,12 +6,20 @@
|
|||
int x;
|
||||
virtual ~Foo() { }
|
||||
virtual Foo* blah() { return this; }
|
||||
virtual Foo* exception_spec(int what_to_throw) throw (int, const char *) {
|
||||
int num = 10;
|
||||
const char *str = "exception message";
|
||||
if (what_to_throw == 1) throw num;
|
||||
else if (what_to_throw == 2) throw str;
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
class FooBar : public Foo {
|
||||
public:
|
||||
using Foo::blah;
|
||||
using Foo::x;
|
||||
using Foo::exception_spec;
|
||||
};
|
||||
|
||||
%}
|
||||
|
|
Loading…
Reference in New Issue