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





Reply via email to