Path: csiph.com!x330-a1.tempe.blueboxinc.net!aioe.org!feeder.news-service.com!news.albasani.net!.POSTED!not-for-mail From: Lew Newsgroups: comp.lang.java.programmer Subject: Re: About using assertion Date: Mon, 09 May 2011 12:11:12 -0400 Organization: albasani.net Lines: 36 Message-ID: References: <09cb7d90-9b79-473e-9869-4476c5a0191a@w24g2000yqb.googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.albasani.net lyPLCPqX0qqQCgwRTRuIhrjt72ifplHM0WA7jTYKY8Sf3DgznzUiG7UXt8kSsMPW6mVwPpROVFBgXHtJpOr4vA== NNTP-Posting-Date: Mon, 9 May 2011 16:11:09 +0000 (UTC) Injection-Info: news.albasani.net; logging-data="Zt8Jkh+D8swEa0WXpfCppkNRuZR7CwiIPHr9zT2W62jNMsaXoFEaIsAtb3D7cT46UHMbE204qg8AjCyTJIbw7cjnLgqbrY1hGuqc0wxxZi/g99TJhtQfG+B2hyLQh6NW"; 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: Cancel-Lock: sha1:TgdKBya6dJmFQ4fCBJyQuRTdQJE= Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:3864 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 Honi soit qui mal y pense. http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg