Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #26269
| From | Jim Janney <jjanney@shell.xmission.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: unnecessary code in Oracle example? |
| Date | 2013-10-09 20:56 -0600 |
| Organization | bilaterally symmetric |
| Message-ID | <ydn61t5kf4p.fsf@shell.xmission.com> (permalink) |
| References | (1 earlier) <u6h5u.69447$yx6.64233@fx26.iad> <ydneh7ujm7q.fsf@shell.xmission.com> <l34an4$ic1$1@dont-email.me> <ydna9iijivg.fsf@shell.xmission.com> <l34jek$782$1@dont-email.me> |
markspace <markspace@nospam.nospam> writes:
> On 10/9/2013 1:21 PM, Jim Janney wrote:
>> Yes, in Java 7 you can have clean syntax and clean semantics. Looks
>> like a win all around.
>>
>
> For Java 5+, with varargs you could do (not compiled):
>
> public class MyIoUtils {
>
> public static void closeAll( Closeable ... toClose ) {
> for( Closeable closeMe : toClose )
> try {
> if( closeMe != null ) closeMe.close();
> } catch( IOException ex ) {
> Logger.getLogger( "MyIoUtils" ).log( ex );
> }
> }
> }
>
> and get a somewhat cleaned up try catch
>
> OutPutStream io1 = null;
> BufferedStream bs = null;
> try {
> io1 = new OutputStream( ...
> bs = new BufferedStream( io1, ...
> // do stuff
> }
> finally {
> MyIoUtils.closeAll( bs, io1 );
> }
>
> Mostly I don't care for deep nesting, I think it reads poorly, and I
> think it can also be hard to trace out for a programmer reading the
> source. Giving the concept of closing a lot of objects a name like
> "closeAll" promotes literate programming, imo.
Mmm... you're complicating the code with extra assignments and tests,
just to avoid one layer of nesting. I like the version with two
try-finally blocks, partly because the lexical structure reflects what's
happening in the code: two independent cleanups. But the Java 7 version
is better.
--
Jim Janney
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
unnecessary code in Oracle example? Jim Janney <jjanney@shell.xmission.com> - 2013-10-09 10:38 -0600
Re: unnecessary code in Oracle example? Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-10-09 11:19 -0700
Re: unnecessary code in Oracle example? ram@zedat.fu-berlin.de (Stefan Ram) - 2013-10-09 19:04 +0000
Re: unnecessary code in Oracle example? Jim Janney <jjanney@shell.xmission.com> - 2013-10-09 13:08 -0600
Re: unnecessary code in Oracle example? markspace <markspace@nospam.nospam> - 2013-10-09 12:27 -0700
Re: unnecessary code in Oracle example? Jim Janney <jjanney@shell.xmission.com> - 2013-10-09 14:21 -0600
Re: unnecessary code in Oracle example? markspace <markspace@nospam.nospam> - 2013-10-09 14:56 -0700
Re: unnecessary code in Oracle example? Jim Janney <jjanney@shell.xmission.com> - 2013-10-09 20:56 -0600
Re: unnecessary code in Oracle example? Arivald <NOSPAMarivald@interia.pl> - 2013-10-10 06:42 +0200
Re: unnecessary code in Oracle example? Sebastian <news@seyweiler.dyndns.org> - 2013-10-10 07:47 +0200
Re: unnecessary code in Oracle example? Arivald <arivald_@AT_interia_DOT_.pl> - 2013-10-10 10:26 +0200
Re: unnecessary code in Oracle example? Jim Janney <jjanney@shell.xmission.com> - 2013-10-10 08:47 -0600
Re: unnecessary code in Oracle example? Robert Klemme <shortcutter@googlemail.com> - 2013-10-09 21:11 +0200
Re: unnecessary code in Oracle example? cuzdav@gmail.com - 2013-10-10 08:49 -0700
csiph-web