Groups | Search | Server Info | Keyboard shortcuts | Login | Register


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

Re: About using assertion

From Robert Klemme <shortcutter@googlemail.com>
Newsgroups comp.lang.java.programmer
Subject Re: About using assertion
Date 2011-05-09 22:17 +0200
Message-ID <92r0e9F6lvU1@mid.individual.net> (permalink)
References <f1e4cc83-8596-4e53-bed7-34a5209fe8c4@k3g2000prl.googlegroups.com> <09cb7d90-9b79-473e-9869-4476c5a0191a@w24g2000yqb.googlegroups.com> <hp3gs6dun3691h96q13jsb6sb4pu0rrvrp@4ax.com> <iq93mt$7ob$1@news.albasani.net>

Show all headers | View raw


On 09.05.2011 18:11, Lew wrote:
> Roedy Green wrote:
>> Robert Klemme wrote, quoted or indirectly quoted someone who said :
>>> Having said that I'd say that argument checking is probably more
>>> important than assertions.
>
>> Assertions should not be used to validate user-provided data. They
>> need to be in effect all the time. Assertions about detecting bugs in
>> the program, mis use of a method.
>>
>> Assertions, even though they hide it he body of method, are
>> documentation on just what sorts of thing the method can do.
>> in a simple case, you might assert that a SQRT method can only handle
>> non-negative numbers.
>
>
> 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. :-)

It's probably a different story if the calculation is done by a private 
method in which case I'd probably add the assert to the beginning of 
that method just to be sure the caller (which can only be in the same 
class or nested classes) did not make a mistake.

Kind regards

	robert

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

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 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