Path: csiph.com!x330-a1.tempe.blueboxinc.net!aioe.org!texta.sil.at!newscore.univie.ac.at!aconews-feed.univie.ac.at!aconews.univie.ac.at!not-for-mail Newsgroups: comp.lang.java.programmer From: Andreas Leitgeb Subject: Re: About using assertion References: <09cb7d90-9b79-473e-9869-4476c5a0191a@w24g2000yqb.googlegroups.com> <92r0e9F6lvU1@mid.individual.net> Reply-To: avl@logic.at User-Agent: slrn/pre0.9.9-111 (Linux) Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: Date: 10 May 2011 13:29:57 GMT Lines: 28 NNTP-Posting-Host: gamma.logic.tuwien.ac.at X-Trace: 1305034197 tunews.univie.ac.at 60386 128.130.175.3 X-Complaints-To: abuse@tuwien.ac.at Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:3912 Arved Sandstrom wrote: > On 11-05-09 07:49 PM, Lew wrote: >> There is art in the decision of which invariants to document. I like to >> document all of them. Why not? "All" does sound a bit harsh, doesn't it? Would you really do even: if ( xyz != null ) { assert xyz != null : "Something's wrong with the world..."; ... } ? ;-) > On a related note, when I run into > objections about use of assertions, let alone copious use of them, the > most frequent objection is that they'll "break" the program. Bad assertions *can* break the program in nasty ways: assert methodWithRelevantSideEffect() > 0 : "Aww..."; Another caveat is, if one uses assert reasonably but then by some mistake assertions are unexpectedly turned off: "We'd have got an assertion failure here, so it must have gone there ..." Nothing of this post shall be construed as a discouraging against reasonable use of assertions. But they *are* part of the code, and by adding them, code size grows, and bug-likeliness is also proportional to code size. Adding assertions *can* be overdone.