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:
William S Fulton 2005-05-25 21:17:17 +00:00
parent ad46f2ef3e
commit fcf2afc3a9
2 changed files with 40 additions and 0 deletions

View File

@ -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");
}
}

View File

@ -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;
};
%}