Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Robert Klemme Newsgroups: comp.lang.java.programmer Subject: Re: redesign exception Date: Wed, 29 Oct 2014 18:59:47 +0100 Lines: 24 Message-ID: References: <1d6fc97wumvl6$.316nwmuziazw.dlg@40tude.net> <6e29c258-9842-4c60-9d99-9929a92d7a96@googlegroups.com> <6429a7c1-3430-4897-aa9b-a9836d9d8a40@googlegroups.com> <5sednVQ7leDCSdDJnZ2dnUVZ8lWdnZ2d@giganews.com> <6fa2df26-9917-49b8-8366-087afdcc06f8@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net uvwQUs9EYS/irqgKE77ceAfJxwVteX9oWPNHSj4Ny8XYgkztw= Cancel-Lock: sha1:+w9xrYv8yeX3ghBj6elu+VtswA8= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 In-Reply-To: Xref: csiph.com comp.lang.java.programmer:30238 On 29.10.2014 18:29, Martin Gregorie wrote: > I believe a good case can be made that invalid data isn't really an > Exception because having both good and bad data input is part of normal > processing and therefore something like a boolean VALID/INVALID return > from the checking method is alll that's needed. Throwing exceptions > should be reserved for processing errors, e.g. a public holiday check on > an in-range future date discovering that the valid public holiday list > doesn't cover all permitted future dates, or finding that the input > represents a security violation serious enough to require attention from > somebody other than the user who input it. We could discuss quite a bit about this... If the interfacing code does not ensure valid input is passed on than it is totally appropriate for lower layers of code to flag this as a processing error (usually via a RuntimeException like InvalidArgumentException or NPE). A checking method with a boolean (or more sophisticated) return value can only ever be a useful helper but the code receiving data still needs to throw if the contract is violated. There is really no other way. Kind regards robert