[RANT] Try-With-Resources

07/03/2014 - 08:49 von Michael Paap | Report spam
Moin.

Zur Zeit ist ja hier ziemlich tote Hose, mal abgesehen von Heiner und
Patrick, die sich über Dinge unterhalten, die ich zwar interessant finde
(und ich lese auch regelmàßig mit), die mir denn aber doch ein bisschen
zu abstrakt sind. Da kann ich ja die Gelegenheit nutzen, und ein wenig
Traffic generieren, indem ich mich ein bisschen aufrege:

Hat eigentlich außer mir noch jemand mal versucht, nennenswerte Mengen
von Code vom unschönen
Declare-Outside-Try-Catch-Close-im-Finally-mit-Nulltest-und-noch-einem-Try-Catch-Block
auf das Try-With-Resources-Zeug umzustellen, was uns mit Java 7 beschert
wurde? Und bin ich der einzige, der dabei aus dem Fluchen nicht mehr
rausgekommen ist?

Zuerst dachte ich ja, ich bin vielleicht einfach nur zu blöde, aber
nachdem ich mir dann Diskussionen wie
http://stackoverflow.com/questions/...urces-bloc
durchgelesen habe, liegt es wohl doch nicht nur an mir.

Sehr intuitiv und spontan einleuchtend auch die folgende Regelung:
"An exception can be thrown from the block of code associated with the
try-with-resources statement. In the example writeToFileZipFileContents,
an exception can be thrown from the try block, and up to two exceptions
can be thrown from the try-with-resources statement when it tries to
close the ZipFile and BufferedWriter objects. If an exception is thrown
from the try block and one or more exceptions are thrown from the
try-with-resources statement, then those exceptions thrown from the
try-with-resources statement are suppressed, and the exception thrown by
the block is the one that is thrown by the writeToFileZipFileContents
method. You can retrieve these suppressed exceptions by calling the
Throwable.getSuppressed method from the exception thrown by the try block."

Aehm, ja, is klar. Und der ganze Irrsinn nur um ein bisschen
Syntaxzucker über ein (zugegebenermaßen unerfreuliches) Konstrukt zu
streuen, welches man aber dennoch weiterhin braucht?

Ich habe mich in letzter Zeit offenbar zu viel mit Smalltalk und Self
beschàftigt. Folgendes Zitat sollte man einigen Leuten bei Oracle mal um
die Ohren hauen:

„We now believe that when features, rules, or elaborations are motivated
by particular examples, it is a good bet that their
addition will be a mistake. The second author once coined the term
‚architect’s trap’ for something similar in the field of computer
architecture; this phenomenon might be called ‚the language designer’s
trap.’“
[Smith, R. B. and Ungar, D. (1995): Programming as an Experience: The
Inspiraon for Self.]

Gruß,
Michael
 

Lesen sie die antworten

#1 Jochen Theodorou
07/03/2014 - 13:37 | Warnen spam
Hi,

Ich weiß schon warum ich die Dinger nicht in Groovy haben will. Besonders Varianten mit mehreren Ressourcen sind mir suspekt. Wir haben sowas àhnliches, aber eben API basiert, da kann man dann definieren was passieren soll.

Ähnliche fragen