Peter Jones said the following on 01/08/10 15:44:
On Jan 8, 2010, at 12:16 AM, David Holmes - Sun Microsystems wrote:
Peter Jones said the following on 01/08/10 15:00:
Hi.  Another nit: the wordings below seem to imply that "new Error()" and "new 
RuntimeException()" (i.e. not subclasses) make checked exceptions, but of course they are 
unchecked too.
What wording do you think implies this?

These are quite clear:

+ * That is, {...@code Error} and its subclasses are regarded as unchecked
+ * exceptions for the purposes of compile-time checking of exceptions.

+ * <p>{...@code RuntimeException} and its subclasses are <em>unchecked
+ * exceptions</em>.

Yes, those seem fine-- I was referring to the excerpts that you had quoted 
earlier, from the Exception and Throwable docs:

+ * <p>The class {...@code Exception} and any subclasses that are not also
+ * subclasses of {...@link RuntimeException} are <em>checked
+ * exceptions</em>.

+ * For the purposes of compile-time checking of exceptions, {...@code
+ * Throwable} and any subclass of {...@code Throwable} that is not also a
+ * subclass of either {...@link RuntimeException} or {...@link Error} are
+ * regarded as checked exceptions.

In JLS usage I don't think that subclass is a reflexive relation (like subtype is).  
Compare the section 11.2 wording, "RuntimeException and its subclasses", etc.:

http://java.sun.com/docs/books/jls/third_edition/html/exceptions.html#44121

Ah I see. Yes in isolation those sentences do seem to exclude Error and RuntimeException themselves.

David

Reply via email to