Multi-catch/final rethrow
Ulf Zibis
Ulf.Zibis at gmx.de
Tue May 4 02:30:10 PDT 2010
Am 04.05.2010 02:25, schrieb joe.darcy at oracle.com:
> Greetings,
>
> As alluded to as a possibility previously [1], I'm happy to announce
> that improved exception handling with multi-catch and final rethrow will
> be part of an upcoming JDK 7 build.
>
Great!
> } else {
> throw (Throwable)new Exception();
>
I'm wondering that a cast to a throw is valid syntax, or _in other
words_, what should such a syntax be good for ???
In fact, an Exception instance is thrown, and should be caught by catch
(Exception e). Or not ?
> To address this, the third clause is changed to
>
>
>> - is a subtype/supertype of one of the types in the declaration of the
>> catch parameter
>>
Does that mean, that following variation wouldn't rethrow
Exception("b3") (and (Throwable)new Exception() too?),
as it is nor subtype nor supertype of Exception, as it is itself ?
That IMO would be weird syntax.
class Neg04 {
static class A extends Exception {}
static class B extends Exception {}
void test(boolean b1, boolean b2, boolean b3) throws B {
try {
if (b1) {
throw new A();
} else if (b2) {
throw new B();
} else if (b3) {
throw new Exception("b3");
} else {
throw (Throwable)new Exception();
}
}
catch (A e) {}
catch (final Exception e) {
throw e;
}
catch (Throwable t) {}
}
}
-Ulf
More information about the coin-dev
mailing list