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


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

Re: About using assertion

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!.POSTED!not-for-mail
From Lew <noone@lewscanon.com>
Newsgroups comp.lang.java.programmer
Subject Re: About using assertion
Date Thu, 19 May 2011 08:46:39 -0400
Organization albasani.net
Lines 54
Message-ID <ir33ei$c4p$2@news.albasani.net> (permalink)
References <f1e4cc83-8596-4e53-bed7-34a5209fe8c4@k3g2000prl.googlegroups.com> <hp3gs6dun3691h96q13jsb6sb4pu0rrvrp@4ax.com> <iq93mt$7ob$1@news.albasani.net> <92r0e9F6lvU1@mid.individual.net> <sjmea8-067.ln1@tmcd-linux-p4.austin.tx.us> <ir2dmk$4vm$1@news.onet.pl>
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 7bit
X-Trace news.albasani.net PXsIiJaHC45rFBSH1TFPyLiqwSoPt98vng1EefHQ/mr5zHsS0j/csOvNPu3snOAwhni9KZCMAJI6Za9RUwnR7YeRBkWWKS4q7/7Yom0P8an9s8hrn8IkEg/twrbM5hiI
NNTP-Posting-Date Thu, 19 May 2011 12:46:10 +0000 (UTC)
Injection-Info news.albasani.net; logging-data="pVwWH7WRShhHHAdq4kUH/Z0NAQNlOCkliYfGBY+gVwS35M4wuyoqH/ENfHKgAfWN1+AyeD1tdsefsFfeRBZjt96szH52+BkKk3hFscx8DogfmtOnE67FVUBV8sdd/szT"; mail-complaints-to="abuse@albasani.net"
User-Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110424 Thunderbird/3.1.10
In-Reply-To <ir2dmk$4vm$1@news.onet.pl>
Cancel-Lock sha1:gar7da1Eloib1wz+qq/5ORYrWfM=
Xref x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:4290

Show key headers only | View raw


On 05/19/2011 02:34 AM, Michal Kleczek wrote:
> Tim McDaniel wrote:
>
>> In article<92r0e9F6lvU1@mid.individual.net>,
>> Robert Klemme<shortcutter@googlemail.com>  wrote:
>>> On 09.05.2011 18:11, Lew wrote:
>>>> public class Foo
>>>> {
>>>> public double sqrt( double arg )
>>>> {
>>>> if ( arg<  0.0 )
>>>> {
>>>> throw new IllegalArgumentException(
>>>> "sqrt(): negative argument "+ arg );
>>>> }
>>>> assert arg>= 0.0; // precondition
>>>>
>>>> double result;
>>>> // rest of algorithm ...
>>>> return result;
>>>> }
>>>> }
>>>
>>> Lew, I am not sure what you tried to convey with this posting.  I for my
>>> part would say that the assert is a tad too much here since the if
>>> clause before that gives me enough "confidence" that arg is actually>=
>>> 0 at that line.  If it isn't then I have bigger problems than
>>> calculating square roots of negative numbers. :-)
>>
>> Consider
>>
>>      Foo.sqrt(Double.NaN)
>>
>> The "if" fails, but if assertions are enabled, the "assert" catches
>> it.  This might be an illustration that an assertion can be useful
>> even if you have "confidence" that it could never fire.
>>
>> (As a tangent, I'm not sure whether "Foo.sqrt(-0.0)" should throw an
>> exception or not.)
>>
>
> What a great example of why assertions are usefull - even if they look
> redundant and not needed.
> Thank You.

That is wrong.  That needs to be checked with an 'if' if 'NaN' is not a 
legitimate input.  'assert' is not meant to correct things, only to make sure 
that the correction is documented and proven.  If 'assert' is turned off in 
production, you still have the bug if you use 'assert' as the only guard.

-- 
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg

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


Thread

About using assertion byhesed <byhesed@gmail.com> - 2011-05-09 07:36 -0700
  Re: About using assertion Robert Klemme <shortcutter@googlemail.com> - 2011-05-09 08:24 -0700
    Re: About using assertion Roedy Green <see_website@mindprod.com.invalid> - 2011-05-09 09:01 -0700
      Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-09 12:11 -0400
        Re: About using assertion Robert Klemme <shortcutter@googlemail.com> - 2011-05-09 22:17 +0200
          Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-09 18:49 -0400
            Re: About using assertion Robert Klemme <shortcutter@googlemail.com> - 2011-05-10 07:23 +0200
            Re: About using assertion Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2011-05-10 06:45 -0300
              Re: About using assertion Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-10 13:29 +0000
                Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-10 11:21 -0400
                Re: About using assertion Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-10 16:01 +0000
                Re: About using assertion RedGrittyBrick <RedGrittyBrick@spamweary.invalid> - 2011-05-10 17:26 +0100
                Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-10 13:25 -0400
                Re: About using assertion Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-05-10 21:15 +0200
          Re: About using assertion tmcd@tmcd-p4-linux.austin.tx.us (Tim McDaniel) - 2011-05-19 00:32 -0500
            Re: About using assertion Michal Kleczek <kleku75@gmail.com> - 2011-05-19 08:34 +0200
              Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-19 08:46 -0400
                Re: About using assertion Michal Kleczek <kleku75@gmail.com> - 2011-05-19 15:16 +0200
                Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-19 09:38 -0400
                Re: About using assertion Robert Klemme <shortcutter@googlemail.com> - 2011-05-19 07:41 -0700
                Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-19 11:00 -0400
            Re: About using assertion Patricia Shanahan <pats@acm.org> - 2011-05-19 05:52 -0700
              Re: About using assertion tmcd@tmcd-p4-linux.austin.tx.us (Tim McDaniel) - 2011-05-21 18:37 -0500
                Re: About using assertion Patricia Shanahan <pats@acm.org> - 2011-05-21 19:00 -0700
                Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-22 01:19 -0400
  Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-09 11:35 -0400
  Re: About using assertion markspace <-@.> - 2011-05-09 11:40 -0700
    Re: About using assertion Lew <noone@lewscanon.com> - 2011-05-09 14:53 -0400

csiph-web