Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #37174

Re: Where to put the return

Path csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From Robert Klemme <shortcutter@googlemail.com>
Newsgroups comp.lang.java.programmer
Subject Re: Where to put the return
Date Sun, 13 Aug 2017 13:15:27 +0200
Lines 55
Message-ID <evaqmgFofnmU1@mid.individual.net> (permalink)
References <87zib6zeup.fsf@munus.decebal.nl> <omlidd$k9h$1@gioia.aioe.org> <ev9dm4Ff34aU1@mid.individual.net> <omoao0$lmg$1@gioia.aioe.org>
Mime-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding quoted-printable
X-Trace individual.net 7Gobqs790Iaj1rhtf5+m8wZVvFJABz+/MCHDLNh/fl1Wy1PXQ=
Cancel-Lock sha1:bQeJ9boyNtO6nz3bVH0Q6z+13J4=
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
In-Reply-To <omoao0$lmg$1@gioia.aioe.org>
Content-Language en-US
Xref csiph.com comp.lang.java.programmer:37174

Show key headers only | View raw


On 13.08.2017 03:41, Arne Vajhøj wrote:
> On 8/12/2017 6:27 PM, Robert Klemme wrote:
>> On 12.08.2017 02:33, Arne Vajhøj wrote:
>>> I would go for:
>>>
>>>        private static final String NO_VALUE = "";
>>>        private static String getOldestUsed() {
>>>            try (Statement stmt     = sqlite3Conn.createStatement();
>>>                ResultSet rsOldest = stmt.executeQuery(OLDEST_USED)) {
>>>                if (rsOldest.next()) {
>>>                    return rsOldest.getString("used");
>>>                } else {
>>>                    return NO_VALUE;
>>>                }
>>>            } catch (SQLException e) {
>>>                giveError("Error in displayOldestUsed");
>>>                e.printStackTrace();
>>>                fatalError("");
>>>                return NO_VALUE;
>>>            }
>>>        }
>>>
>>> But there are many acceptable ways of writing this.
>>
>> Your approach has a few advantages though:
>>
>>   - The compiler will catch the case that you forget to include
>>     an explicit return in the catch.
>>   - For the reader the code for the regular case (i.e. without
>>     exception) is in one place (in the try body) so it is easier
>>     to digest.
>>
>> Btw. I'd rather throw in catch than return a special value.  That is 
>> cleaner and does not break if the special value actually occurs in the 
>> database.
> 
> Yes.
> 
> Exception instead of "magic value" is better if possible.

One more thing: since you used the same "magic value" for "exception" 
and "not found" caller cannot distinguish.  Whether that is an issue 
depends of course on the other logic.  Just wanted to point that out.

Cheers

	robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Where to put the return Cecil Westerhof <Cecil@decebal.nl> - 2017-08-11 10:30 +0200
  Re: Where to put the return Cecil Westerhof <Cecil@decebal.nl> - 2017-08-11 12:24 +0200
  Re: Where to put the return Eric Douglas <e.d.programmer@gmail.com> - 2017-08-11 08:31 -0700
  Re: Where to put the return Arne Vajhøj <arne@vajhoej.dk> - 2017-08-11 20:33 -0400
    Re: Where to put the return Robert Klemme <shortcutter@googlemail.com> - 2017-08-13 00:27 +0200
      Re: Where to put the return Arne Vajhøj <arne@vajhoej.dk> - 2017-08-12 21:41 -0400
        Re: Where to put the return Robert Klemme <shortcutter@googlemail.com> - 2017-08-13 13:15 +0200
      Re: Where to put the return Cecil Westerhof <Cecil@decebal.nl> - 2017-08-15 08:12 +0200
        Re: Where to put the return Robert Klemme <shortcutter@googlemail.com> - 2017-08-19 11:10 +0200
          Re: Where to put the return Cecil Westerhof <Cecil@decebal.nl> - 2017-08-19 12:54 +0200
            Re: Where to put the return Cecil Westerhof <Cecil@decebal.nl> - 2017-08-19 13:46 +0200
              Re: Where to put the return Cecil Westerhof <Cecil@decebal.nl> - 2017-08-19 14:10 +0200
              Re: Where to put the return Robert Klemme <shortcutter@googlemail.com> - 2017-08-19 15:35 +0200
                Re: Where to put the return Arne Vajhøj <arne@vajhoej.dk> - 2017-08-19 09:48 -0400
                Re: Where to put the return Robert Klemme <shortcutter@googlemail.com> - 2017-08-19 23:26 +0200
                Re: Where to put the return Arne Vajhøj <arne@vajhoej.dk> - 2017-08-19 20:01 -0400
                Re: Where to put the return Robert Klemme <shortcutter@googlemail.com> - 2017-08-20 19:30 +0200
                Re: Where to put the return Cecil Westerhof <Cecil@decebal.nl> - 2017-08-19 17:06 +0200
            Re: Where to put the return Robert Klemme <shortcutter@googlemail.com> - 2017-08-19 15:35 +0200
              Re: Where to put the return Arne Vajhøj <arne@vajhoej.dk> - 2017-08-19 09:43 -0400
              Re: Where to put the return Cecil Westerhof <Cecil@decebal.nl> - 2017-08-19 17:15 +0200
                Re: Where to put the return Robert Klemme <shortcutter@googlemail.com> - 2017-08-21 22:33 +0200
          Re: Where to put the return lewbloch@gmail.com - 2017-08-19 09:20 -0700
            Re: Where to put the return Robert Klemme <shortcutter@googlemail.com> - 2017-08-21 22:29 +0200
    Re: Where to put the return Eric Douglas <e.d.programmer@gmail.com> - 2017-08-14 05:11 -0700
  Re: Where to put the return Brixomatic <brixomatic@yahoo.com> - 2017-08-31 19:27 +0200

csiph-web