Unreachable catch classes
David Holmes
David.Holmes at oracle.com
Thu Apr 28 12:03:13 UTC 2011
Maurizio Cimadamore said the following on 04/28/11 21:56:
> On 27/04/11 13:51, Maurizio Cimadamore wrote:
>> On 27/04/11 09:18, David Holmes wrote:
>>> Special-casing Throwable wouldn't be sufficient as people may use
>>> Exception instead.
>> I guess this doesn't invalidate the argument - we could special-case
>> Exception AND Throwable, since they are already treated specially in
>> the language...
>>
>> Maurizio
> Hi
> after a discussion with the team, we have decided that we will relax the
> new javac warnings so that they will *not* be generated for those catch
> clauses catching Exception or Throwable.
>
> This is similar to how javac has always handled a similar case (error
> message: 'exception never thrown in body of try'); for example, this
> code compiles:
>
> try { }
> catch (Exception e) { ... }
>
> while the following does not compile:
>
> try { }
> catch (IOException e) { ... } //error IOException never thrown
Thanks Maurizio. I never realized the above case existed. :)
David
-----
>
> The code generating the newly added javac warnings will be changed
> accordingly; for example, the following will compile w/o warnings:
>
> try { throw new FileNotFoundException(); }
> catch (FileNotFoundException fnf) { ... }
> catch (Exception e) { ... }
>
> while the following code will still emit a 'dead catch' warning:
>
> try { throw new FileNotFoundException(); }
> catch (FileNotFoundException fnf) { ... }
> catch (IOException e) { ... }
>
>
> This should accommodate all weird cases of checked exceptions not being
> declared (as in Class.newInstance).
>
> Maurizio
>
>
>
>
>
More information about the core-libs-dev
mailing list