Exception transparency vs constructors

Mark Mahieu mark at twistedbanana.demon.co.uk
Tue Jul 8 07:30:09 PDT 2008


Thanks for the info.

Regards,
Mark

On 8 Jul 2008, at 15:00, Neal Gafter wrote:

> Mark-
>
> FYI, the new javac bug report is 6723444 and will appear at http:// 
> bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723444 within a few days.
>
> Regards,
> Neal
>
> On Mon, Jul 7, 2008 at 1:22 AM, Neal Gafter <neal at gafter.com> wrote:
> Mark-
>
> This is indeed a bug in the underlying compiler.  Generic  
> constructors are pretty rare, and type parameters in throws clauses  
> even more so.  Apparently the combination doesn't currently work in  
> javac.  The following won't compile.
>
> public class Hello {
>     static class Foo<X> {}
>
>     <X extends Throwable> Hello(Foo<X> foo) throws X {}
>
>
>     public static void main(String[] args) throws Exception {
>     new Hello(new Foo<Exception>());
>     }
> }
>
> I've reported this as a bug against javac.
>
> Regards,
> Neal
>
>
> On Thu, May 15, 2008 at 7:22 PM, Neal Gafter <neal at gafter.com> wrote:
> Got it, thanks!  I suspect some of these are symptoms of existing  
> problems, but either way I'll track them down.
>
> Regards,
> Neal
>
>
> On Thu, May 15, 2008 at 6:22 PM, Mark Mahieu  
> <mark at twistedbanana.demon.co.uk> wrote:
> It looks like exception transparency isn't working quite right with  
> constructors - I think the following class should compile, but it  
> doesn't:
>
>
> public class ExTrans {
>
>    <throws X> ExTrans({=> void throws X} block) throws X {
>        block.invoke();
>    }
>
>    public static void main(String[] args) throws Exception {
>        new ExTrans({=> throw new Exception(); });
>    }
> }
>
>
>
> ExTrans.java:8: unreported exception X; must be caught or declared  
> to be thrown
>        new ExTrans({=> throw new Exception(); });
>        ^
> 1 error
>
>
>
> Regards,
>
> Mark
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/closures-dev/attachments/20080708/91750520/attachment.html 


More information about the closures-dev mailing list