Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


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

Re: redesign exception

From Martin Gregorie <martin@address-in-sig.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: redesign exception
Date 2014-10-29 17:29 +0000
Organization A noiseless patient Spider
Message-ID <m2r85a$t4j$1@dont-email.me> (permalink)
References (8 earlier) <cb80pmFmpkrU1@mid.individual.net> <6fa2df26-9917-49b8-8366-087afdcc06f8@googlegroups.com> <cbbjkiFjvvcU1@mid.individual.net> <m2qics$d01$1@dont-email.me> <m2r654$j6g$1@speranza.aioe.org>

Show all headers | View raw


On Wed, 29 Oct 2014 16:55:01 +0000, Marketa Jadalova wrote:

> It strikes me as odd that they didn't create an SQLRuntimeException
> class (derived from RuntimeException) for the SQL errors that likely
> represent bugs in your code (syntactically malformed queries, column
> doesn't exist,
> etc.) and reserve the (checked) SQLException hierarchy for ones that can
> arise even if there is no bug in the application (or mismatch of some
> sort between the application and the database), such as I/O errors and
> constraint violations.
> 
> That's the usual pattern elsewhere in Javaland, after all:
> RuntimeException (and Error) for cases that need the application code
> changing to fix, and (checked) Exception for cases that can arise
> without broken application code, but as errors that are (or, at least,
> often are)
> something else's fault (user error, network, or whatever).
>
Yes, that split into major Exception classes would be useful and would, 
have been trivially easy to do by subclassing SQLRuntimeException and 
SQLException. It would have been easy enough to generate the right 
Exception within the JDBC driver too; the underlying SQL error codes are 
given a structured set of values by every RDBMS I've used.
   
> Funnily enough, almost all of the exceptions I see in actual practice
> that are not programmer errors are IOExceptions or, at least, are I/O
> exceptions. :) User misspells filename to open: IOException. Network
> resource (or network itself) goes down: IOException. I'm wondering
> actually how often it even makes sense for a checked exception not to be
> considered, at least conceptually, to be an I/O exception.
>
This is probably due to code designed to not throw Exceptions just 
because input date is invalid. 

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.


-- 
martin@   | Martin Gregorie
gregorie. | Essex, UK
org       |

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

redesign exception boxzou@gmail.com - 2014-10-25 19:16 -0700
  Re: redesign exception Joerg Meier <joergmmeier@arcor.de> - 2014-10-26 08:09 +0100
    Re: redesign exception rossum <rossum48@coldmail.com> - 2014-10-26 09:15 +0000
      Re: redesign exception Joerg Meier <joergmmeier@arcor.de> - 2014-10-26 10:36 +0100
      Re: redesign exception Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-10-26 09:23 -0400
        Re: redesign exception boxzou@gmail.com - 2014-10-26 12:56 -0700
          Re: redesign exception Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-10-26 18:10 -0400
            Re: redesign exception boxzou@gmail.com - 2014-10-26 17:39 -0700
      Re: redesign exception boxzou@gmail.com - 2014-10-26 12:06 -0700
        Re: redesign exception Joerg Meier <joergmmeier@arcor.de> - 2014-10-26 20:41 +0100
    Re: redesign exception boxzou@gmail.com - 2014-10-26 12:46 -0700
      Re: redesign exception boxzou@gmail.com - 2014-10-26 13:12 -0700
      Re: redesign exception Leif Roar Moldskred <leifm@huldreskog.localdomain> - 2014-10-26 16:50 -0500
        Re: redesign exception boxzou@gmail.com - 2014-10-26 17:21 -0700
      Re: redesign exception Martin Gregorie <martin@address-in-sig.invalid> - 2014-10-27 01:05 +0000
        Re: redesign exception boxzou@gmail.com - 2014-10-26 19:38 -0700
          Re: redesign exception Leif Roar Moldskred <leifm@huldreskog.localdomain> - 2014-10-27 00:13 -0500
            Re: redesign exception boxzou@gmail.com - 2014-10-27 04:59 -0700
            Re: redesign exception Marketa Jadalova <m-jadalova3@gmail.com> - 2014-10-27 16:55 +0000
              Re: redesign exception Leif Roar Moldskred <leifm@huldreskog.localdomain> - 2014-10-27 12:46 -0500
                Re: redesign exception boxzou@gmail.com - 2014-10-27 15:48 -0700
                Re: redesign exception Leif Roar Moldskred <leifm@huldreskog.localdomain> - 2014-10-27 22:16 -0500
                Re: redesign exception Robert Klemme <shortcutter@googlemail.com> - 2014-10-27 23:54 +0100
                Re: redesign exception boxzou@gmail.com - 2014-10-27 17:20 -0700
                Re: redesign exception boxzou@gmail.com - 2014-10-28 07:12 -0700
                Re: redesign exception Robert Klemme <shortcutter@googlemail.com> - 2014-10-29 08:34 +0100
                Re: redesign exception Martin Gregorie <martin@address-in-sig.invalid> - 2014-10-29 11:17 +0000
                Re: redesign exception Silvio <silvio@internet.com> - 2014-10-29 15:33 +0100
                Re: redesign exception Leif Roar Moldskred <leifm@huldreskog.localdomain> - 2014-10-29 11:35 -0500
                Re: redesign exception boxzou@gmail.com - 2014-10-29 17:51 -0700
                Re: redesign exception Leif Roar Moldskred <leifm@huldreskog.localdomain> - 2014-10-29 20:45 -0500
                Re: redesign exception boxzou@gmail.com - 2014-10-30 04:12 -0700
                Re: redesign exception Silvio <silvio@internet.com> - 2014-10-30 12:38 +0100
                Re: redesign exception boxzou@gmail.com - 2014-10-30 06:23 -0700
                Re: redesign exception boxzou@gmail.com - 2014-10-29 17:01 -0700
                Re: redesign exception Marketa Jadalova <m-jadalova3@gmail.com> - 2014-10-29 16:55 +0000
                Re: redesign exception Martin Gregorie <martin@address-in-sig.invalid> - 2014-10-29 17:29 +0000
                Re: redesign exception Robert Klemme <shortcutter@googlemail.com> - 2014-10-29 18:59 +0100
                Re: redesign exception Martin Gregorie <martin@address-in-sig.invalid> - 2014-10-29 22:05 +0000
                Re: redesign exception boxzou@gmail.com - 2014-10-29 18:04 -0700
                Re: redesign exception Leif Roar Moldskred <leifm@huldreskog.localdomain> - 2014-10-29 20:56 -0500
                Re: redesign exception boxzou@gmail.com - 2014-10-30 04:19 -0700
                Re: redesign exception boxzou@gmail.com - 2014-10-30 04:27 -0700
                Re: redesign exception boxzou@gmail.com - 2014-10-30 04:35 -0700
                Re: redesign exception boxzou@gmail.com - 2014-10-29 18:01 -0700
                Re: redesign exception boxzou@gmail.com - 2014-10-29 17:00 -0700
                Re: redesign exception boxzou@gmail.com - 2014-10-29 16:56 -0700
    Re: redesign exception boxzou@gmail.com - 2014-10-26 12:52 -0700
  Re: redesign exception Silvio <silvio@internet.com> - 2014-10-27 09:03 +0100
    Re: redesign exception boxzou@gmail.com - 2014-10-27 05:06 -0700
      Re: redesign exception Silvio <silvio@internet.com> - 2014-10-27 13:32 +0100
        Re: redesign exception boxzou@gmail.com - 2014-10-27 07:01 -0700

csiph-web