<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important">Is there a reason not to allow implicit Unnamed Variables in try-with-resources and Catch-block?</p>
<p style="margin:0px 0px 1.2em!important">To allow:</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="hljs language-java" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248)">    <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">try</span> (Scope.open()) {
        ...
    }
---
    <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">try</span> { ... }
    <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">catch</span> (Exception) { ... }
</code></pre>
<p style="margin:0px 0px 1.2em!important">to be implicitly</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="hljs language-java" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248)">    <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">try</span> (var _ = Scope.open()) {
        ...
    }
---
    <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">try</span> { ... }
    <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">catch</span> (Exception _) { ... }
</code></pre>
<p style="margin:0px 0px 1.2em!important">Unlike a normal expression, and expression on the RHS of a try-with-resources variable has an explicit context, there is no fear of someone forgetting the result of the expression by mistake.</p>
<p style="margin:0px 0px 1.2em!important">In a Catch block the exception is uniquely accessible through the variable declared in the declaration of the block, so there is no fear that someone will get confused by this implicitness.</p>
<p style="margin:0px 0px 1.2em!important">This implicitness will make stuff like logging context, which is far from a niche use case, much more elegant.</p>
<div title="MDH:SXMgdGhlcmUgYSByZWFzb24gbm90IHRvIGFsbG93IGltcGxpY2l0wqBVbm5hbWVkIFZhcmlhYmxl
cyBpbiB0cnktd2l0aC1yZXNvdXJjZXMgYW5kIENhdGNoLWJsb2NrPzxkaXY+PGJyPjwvZGl2Pjxk
aXY+VG8gYWxsb3c6PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5gYGBqYXZhPC9kaXY+PGRpdj4m
bmJzcDsgJm5ic3A7IHRyeSAoU2NvcGUub3BlbigpKSB7PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgLi4uPGJyPjwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyB9PC9kaXY+PGRp
dj4tLS08L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgdHJ5IHsgLi4uIH08YnI+PC9kaXY+PGRpdj4m
bmJzcDsgJm5ic3A7IGNhdGNoIChFeGNlcHRpb24pIHsgLi4uIH08YnI+PC9kaXY+PGRpdj5gYGA8
L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PnRvIGJlIGltcGxpY2l0bHk8L2Rpdj48ZGl2PjxkaXY+
YGBgamF2YTwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyB0cnkgKHZhciBfID0gU2NvcGUub3Blbigp
KSB7PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgLi4uPGJyPjwvZGl2Pjxk
aXY+Jm5ic3A7ICZuYnNwOyB9PC9kaXY+PGRpdj4tLS08L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsg
dHJ5IHsgLi4uIH08YnI+PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7IGNhdGNoIChFeGNlcHRpb24g
XykgeyAuLi4gfTxicj48L2Rpdj48ZGl2PmBgYDwvZGl2PjwvZGl2PjxkaXY+PGJyPjwvZGl2Pjxk
aXY+VW5saWtlIGEgbm9ybWFsIGV4cHJlc3Npb24sIGFuZCBleHByZXNzaW9uIG9uIHRoZSBSSFMg
b2YgYSB0cnktd2l0aC1yZXNvdXJjZXMgdmFyaWFibGUgaGFzIGFuIGV4cGxpY2l0IGNvbnRleHQs
IHRoZXJlIGlzIG5vIGZlYXIgb2Ygc29tZW9uZSBmb3JnZXR0aW5nJm5ic3A7dGhlIHJlc3VsdCBv
ZiB0aGUgZXhwcmVzc2lvbiBieSBtaXN0YWtlLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SW4g
YSBDYXRjaCBibG9jayB0aGUgPHNwYW4gemV1bTRjMj0iMTY3OTQzNDMxMTQwOSIgZGF0YS1kZG53
YWI9IjE2Nzk0MzQzMTE0MDkiIGNsYXNzPSJuZyIgZGF0YS13cGtndj0idHJ1ZSI+ZXhjZXB0aW9u
PC9zcGFuPiZuYnNwO2lzIHVuaXF1ZWx5IGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgdmFyaWFibGUg
ZGVjbGFyZWQgaW4gdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSBibG9jaywgc28gdGhlcmUgaXMgbm8g
ZmVhciB0aGF0IHNvbWVvbmUgd2lsbCBnZXQgY29uZnVzZWQgYnkgdGhpcyBpbXBsaWNpdG5lc3Mu
PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGlzIGltcGxpY2l0bmVzcyB3aWxsIG1ha2Ugc3R1
ZmYgbGlrZSBsb2dnaW5nIGNvbnRleHQsIHdoaWNoIGlzIGZhciBmcm9tIGEgbmljaGUgdXNlIGNh
c2UsIG11Y2ggbW9yZSBlbGVnYW50LjwvZGl2Pg==" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 21, 2023 at 9:17 PM Mark Reinhold <<a href="mailto:mark.reinhold@oracle.com">mark.reinhold@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><a href="https://openjdk.org/jeps/443" rel="noreferrer" target="_blank">https://openjdk.org/jeps/443</a><br>
<br>
  Summary: Enhance the Java language with unnamed patterns, which match<br>
  a record component without stating the component's name or type,<br>
  and unnamed variables, which can be initialized but not used. Both<br>
  are denoted by an underscore character, _. This is a preview language<br>
  feature.<br>
<br>
- Mark</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr">Holo The Wise Wolf Of Yoitsu</div></div>