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


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

Re: About using assertion

From Michal Kleczek <kleku75@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: About using assertion
Date 2011-05-19 08:34 +0200
Organization http://onet.pl
Message-ID <ir2dmk$4vm$1@news.onet.pl> (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>

Show all headers | View raw


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.

-- 
Michal

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