Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #37174
| From | Robert Klemme <shortcutter@googlemail.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Where to put the return |
| Date | 2017-08-13 13:15 +0200 |
| 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> |
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
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