Latest build c572fa185d05 limitations
Howard Lovatt
howard.lovatt at gmail.com
Fri Sep 10 22:18:32 PDT 2010
Hi,
Using my usual source:
143: final IntList11 il = new IntList11();
144: out.println( il );
145: il.forEach( #( int i ) { 2 * i } ); // No exception; no try
block - needs type parameter
146: out.println( il );
Gives:
Exception in thread "main" java.lang.VerifyError: Bad local variable
type in method lambdas.Main$9.call(Ljava/lang/Integer;)Ljava/lang/Integer;
at offset 1
at lambdas.Main.exceptionTransparency(Main.java:145)
at lambdas.Main.main(Main.java:24)
But:
try {
il.forEach( #( int i ) {
if ( i < 4 ) { throw new Exception(); }
return i * i;
} ); // Need to catch the checked exception!
} catch ( final Throwable notUsed ) {
out.println( "Exception caught 1" );
}
out.println( il );
Works!
And:
il.forEach( #( i ) { 2 * i } );
Requires a try catch block (as before) and:
il.forEach( #( Integer i ) { 2 * i } );
Works.
Great to see such regular updates into the repository,
-- Howard.
More information about the lambda-dev
mailing list