Fix #2153773 - %nojavaexception - disabling and clearing Java checked exceptions

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10998 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2008-12-23 07:44:59 +00:00
commit e6f5cdac9f
7 changed files with 85 additions and 4 deletions

View file

@ -143,3 +143,41 @@ try {
}
%}
// Test %nojavaexception
%javaexception("MyException") %{
/* global exception handler */
try {
$action
} catch (MyException) {
jclass excep = jenv->FindClass("java_throws/MyException");
if (excep)
jenv->ThrowNew(excep, "exception message");
return $null;
}
%}
%nojavaexception *::noExceptionPlease();
%nojavaexception NoExceptTest::NoExceptTest();
// Need to handle the checked exception in NoExceptTest.delete()
%typemap(javafinalize) SWIGTYPE %{
protected void finalize() {
try {
delete();
} catch (MyException e) {
throw new RuntimeException(e);
}
}
%}
%inline %{
struct NoExceptTest {
unsigned int noExceptionPlease() { return 123; }
unsigned int exceptionPlease() { return 456; }
~NoExceptTest() {}
};
%}
// Turn global exceptions off (for the implicit destructors)
%nojavaexception;