Multi-catch/final rethrow
joe.darcy at oracle.com
joe.darcy at oracle.com
Fri May 7 16:26:03 PDT 2010
If you have a question on what is today legal syntax, your friendly
neighborhood java compiler can help you answer that question :-)
-Joe
On 5/6/2010 12:45 PM, Ulf Zibis wrote:
> No answer for my questions? :-(
>
> -Ulf
>
>
> Am 04.05.2010 11:30, schrieb Ulf Zibis:
>> 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