Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > comp.lang.java.programmer > #3875
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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