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


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

Re: Java Checked Exception is BAD!

From Eric Sosman <esosman@comcast-dot-net.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: Java Checked Exception is BAD!
Date 2016-02-11 08:13 -0500
Organization A noiseless patient Spider
Message-ID <n9i199$7mp$1@dont-email.me> (permalink)
References (14 earlier) <575f130e-2444-4eb8-bf11-91f13e1fb44b@googlegroups.com> <n9coos$9ht$1@dont-email.me> <fda62272-314a-4f2d-bd67-42f4f17c31ba@googlegroups.com> <n9e499$4m0$1@news.albasani.net> <8bfc5048-297e-459e-8c3f-3752fb4046b5@googlegroups.com>

Show all headers | View raw


On 2/10/2016 9:58 PM, boxzou@gmail.com wrote:
> On Tuesday, 9 February 2016 20:37:52 UTC-5, Sebastian  wrote:
>> Am 09.02.2016 16:57, schrieb b...@gmail.com:
>>> On Tuesday, 9 February 2016 08:18:14 UTC-5, Eric Sosman  wrote:
>>>> On 2/9/2016 7:58 AM, b...@gmail.com wrote:
>>>>> On Tuesday, 9 February 2016 02:22:14 UTC-5, Sebastian  wrote:
>>>>>> Am 09.02.2016 03:46, schrieb b...@gmail.com:
>>>>>>> On Monday, 8 February 2016 17:23:45 UTC-5, Eric Sosman  wrote:
>>>>>>>>
>>>>>>>>          And he wrote
>>>>>>>>
>>>>>>>> 	"[...] javadoc can't list all the exceptions either [...]"
>>>>>>>>
>>>>>>>> which gets the same BIG DOWNVOTE from me, too.  A programmer who won't
>>>>>>>> document his code is doing no one any favors.
>>>>>>>>
>>>>>>> that's quite normal.  You can only document a few exceptions.  for example, JPA EntityManager.persist(object) can throw all kinds of exceptions, there is no way you can document all (db connection failure, constraint violation, object mismtach etc etc, I think EclipseLink have hundreds of exception codes, they didn't document them at the method or class level, but as a separate web page: https://wiki.eclipse.org/EclipseLink_Exception_Error_Reference_%28ELUG%29).  There is another reason: you can plug in new database.  JPA has no way to document the future new db exceptions.  Nor should it.
>>>>>>>
>>>>>>> Another example is SSH library to execute commands on remote OS.  can you document all the errors thrown back by all the linux/unix commands?
>>>>>>>
>>>>>> Isn't that where wrapping for once is useful? Like
>>>>>> InvocationTargetException?
>>>>>
>>>>> wrapping obscures the exception.  Do you know how to handle an InvocationTargetException other than log it?
>>>>
>>>>        Logging is not handling.
>>>>
>>>>        Logging is a useful adjunct to handling, in that it exposes some
>>>> information for post-event analysis: debugging, health monitoring, and
>>>> all the rest.
>>>>
>>>>        Your boss says "Perform this task," but you're unable.  Logging is
>>>> writing "I can't" on a sticky note your boss doesn't see.  He will be
>>>> unhappy if that's all you do, because you didn't "handle" his task:
>>>> You "dropped" it.
>>>>
>>>>        Question: What does the catch block do beyond emitting a log entry?
>>>> Throw a new exception?  Re-throw the original?  Close a few streams?
>>>> Mark a cache entry as "stale?"  Abandon the current operation and move
>>>> on to the next?  Some combination of these and other actions?
>>>>
>>>>        *That's* handling.
>>>>
>>> Your handling is not handling at all.  Those are cleanup, which should be done in a finally block.
>>>
>> Closing streams would typically happen in a finally block. But all the
>> rest of Eric's examples seem to me perfectly reasonable things one might
>> do in a catch block.
>
> Correct, but he basically explained what catch can do. I never said do not use catch.  But catch should be used to do meaningful exception handling.  Wrapping, logging at the mid call stack level, swallowing are not meaningful handling.  If there is no checked exception, wrapping, logging at mid call stack, swallowing won't happen.  We don't even need InvocationTargetException!

     You haven't said "do not use catch."  But you *have* said that
exceptions should not be documented, neither in a `throws' clause nor
in a Javadoc `@throws' paragraph!  So, what exceptions should I catch,
and how should I interpret what they mean?

     Here's a method in the style you have advocated:

	/**
	 * Establishes the tone of this debate.
	 * @param tone The tone of this debate.
	 */
	public void boxzou(Tone tone) {
	    // ...
	}

Should I enclose a call to this method in a `try' block?  Why, or
why not?  What exceptions might it throw, and why?  Which of those
exceptions are irredeemable, and which might indicate temporary
conditions that might clear up if retried?

-- 
esosman@comcast-dot-net.invalid
"Don't be afraid of work. Make work afraid of you." -- TLM

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


Thread

Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 07:18 -0800
  Re: Java Checked Exception is BAD! Eric Douglas <e.d.programmer@gmail.com> - 2016-02-04 08:15 -0800
    Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-04 17:57 +0100
      Re: Java Checked Exception is BAD! Eric Douglas <e.d.programmer@gmail.com> - 2016-02-04 10:09 -0800
        Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-04 21:01 +0100
          Re: Java Checked Exception is BAD! Eric Douglas <e.d.programmer@gmail.com> - 2016-02-04 12:14 -0800
          Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-04 15:16 -0500
            Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-04 21:37 +0100
              Re: Java Checked Exception is BAD! Eric Douglas <e.d.programmer@gmail.com> - 2016-02-04 13:08 -0800
                Re: Java Checked Exception is BAD! 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-02-04 21:16 +0000
                Re: Java Checked Exception is BAD! Eric Douglas <e.d.programmer@gmail.com> - 2016-02-04 13:28 -0800
                Re: Java Checked Exception is BAD! Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-04 23:11 +0000
                Re: Java Checked Exception is BAD! a.laforgia@gmail.com - 2016-02-05 04:21 -0800
                Re: Java Checked Exception is BAD! Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-05 13:07 +0000
              Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-04 18:04 -0500
                Re: Java Checked Exception is BAD! Gene Wirchenko <genew@telus.net> - 2016-02-05 11:40 -0800
          Re: Java Checked Exception is BAD! Sebastian <news@seyweiler.dyndns.org> - 2016-02-04 23:22 +0100
          Re: Java Checked Exception is BAD! ruben <ceo@iran.gov> - 2016-02-15 11:45 +0000
      Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 11:57 -0800
        Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-04 21:07 +0100
    Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 11:10 -0800
      Re: Java Checked Exception is BAD! Eric Douglas <e.d.programmer@gmail.com> - 2016-02-04 11:28 -0800
        Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 11:33 -0800
          Re: Java Checked Exception is BAD! 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-02-04 21:08 +0000
          Re: Java Checked Exception is BAD! Lew <lewbloch@gmail.com> - 2016-02-04 16:09 -0800
  Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-04 12:00 -0500
  Re: Java Checked Exception is BAD! Marcel Mueller <news.5.maazl@spamgourmet.org> - 2016-02-04 19:28 +0100
    Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 11:15 -0800
      Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-04 14:51 -0500
  Re: Java Checked Exception is BAD! 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-02-04 21:07 +0000
    Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 14:36 -0800
      Re: Java Checked Exception is BAD! a.laforgia@gmail.com - 2016-02-05 05:28 -0800
  Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 15:31 -0800
    Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-05 08:20 -0500
      Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-05 08:25 -0800
        Re: Java Checked Exception is BAD! Eric Douglas <e.d.programmer@gmail.com> - 2016-02-05 08:47 -0800
          Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-05 16:09 -0800
            Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-06 08:38 -0500
              Re: Java Checked Exception is BAD! Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-06 14:13 +0000
                Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-06 15:23 +0100
                Re: Java Checked Exception is BAD! Sebastian <news@seyweiler.dyndns.org> - 2016-02-07 14:49 +0100
                Re: Java Checked Exceptions Robert Klemme <shortcutter@googlemail.com> - 2016-02-07 21:55 +0100
                Re: Java Checked Exceptions boxzou@gmail.com - 2016-02-07 14:39 -0800
                Re: Java Checked Exceptions Robert Klemme <shortcutter@googlemail.com> - 2016-02-08 13:30 +0100
                Re: Java Checked Exceptions boxzou@gmail.com - 2016-02-08 06:14 -0800
                Re: Java Checked Exceptions Robert Klemme <shortcutter@googlemail.com> - 2016-02-08 20:55 +0100
                Re: Java Checked Exceptions Lew <lewbloch@gmail.com> - 2016-02-08 16:06 -0800
                Re: Java Checked Exceptions boxzou@gmail.com - 2016-02-08 18:38 -0800
                Re: Java Checked Exceptions Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-09 12:15 +0000
                Re: Java Checked Exceptions boxzou@gmail.com - 2016-02-09 04:59 -0800
                Re: Java Checked Exceptions Lew <lewbloch@gmail.com> - 2016-02-10 12:13 -0800
                Re: Java Checked Exceptions boxzou@gmail.com - 2016-02-10 19:00 -0800
                Re: Java Checked Exceptions Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-11 12:18 +0000
                Re: Java Checked Exceptions leif.roar@dimnakorr.com - 2016-02-11 04:43 -0600
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 14:34 -0800
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 14:11 -0800
                Re: Java Checked Exception is BAD! Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-07 23:19 +0000
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 15:42 -0800
                Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-06 09:43 -0500
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 14:14 -0800
                Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-08 09:22 -0500
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-08 11:01 -0800
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-08 11:08 -0800
                Re: Java Checked Exception is BAD! Sebastian <news@seyweiler.dyndns.org> - 2016-02-08 22:02 +0100
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 14:09 -0800
                Re: Java Checked Exception is BAD! Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-07 23:29 +0000
                Re: Java Checked Exception is BAD! Sebastian <news@seyweiler.dyndns.org> - 2016-02-08 21:49 +0100
                Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-08 17:23 -0500
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-08 18:46 -0800
                Re: Java Checked Exception is BAD! Sebastian <news@seyweiler.dyndns.org> - 2016-02-09 08:21 +0100
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-09 04:58 -0800
                Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-09 08:17 -0500
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-09 07:57 -0800
                Re: Java Checked Exception is BAD! Sebastian <news@seyweiler.dyndns.org> - 2016-02-10 02:37 +0100
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-10 18:58 -0800
                Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-11 08:13 -0500
                Re: Java Checked Exception is BAD! Lew <lewbloch@gmail.com> - 2016-02-11 14:02 -0800
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-11 16:41 -0800
                Re: Java Checked Exception is BAD! Sebastian <news@seyweiler.dyndns.org> - 2016-02-10 02:31 +0100
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-10 18:47 -0800
                Re: Java Checked Exception is BAD! Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-09 12:26 +0000
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-09 04:57 -0800
                Re: Java Checked Exception is BAD! Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-09 18:27 +0000
              Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 20:19 -0800
            Re: Java Checked Exception is BAD! Robert Klemme <shortcutter@googlemail.com> - 2016-02-06 16:01 +0100
              Re: Java Checked Exception is BAD! 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-02-06 15:10 +0000
                Re: Java Checked Exception is BAD! Kevin McMurtrie <mcmurtrie@pixelmemory.us> - 2016-02-06 17:59 -0800
                Re: Java Checked Exception is BAD! 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-02-07 09:34 +0000
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 14:23 -0800
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 20:52 -0800
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 21:13 -0800
              Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-07 14:19 -0800
                Re: Java Checked Exception is BAD! Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-07 23:42 +0000
                Re: Java Checked Exception is BAD! Robert Klemme <shortcutter@googlemail.com> - 2016-02-08 13:17 +0100
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-08 04:39 -0800
                Re: Java Checked Exception is BAD! Lew <lewbloch@gmail.com> - 2016-02-08 16:05 -0800
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-08 18:35 -0800
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-08 19:10 -0800
                Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-08 19:12 -0800
                Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-11 16:37 +0100
                Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-11 12:00 -0500
                Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-11 19:01 +0100
                Re: Java Checked Exception is BAD! Sebastian <news@seyweiler.dyndns.org> - 2016-02-11 20:32 +0100
                Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-11 15:20 -0500
                Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-11 23:53 +0100
                Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-11 18:21 -0500
                Re: Java Checked Exception is BAD! Lew <lewbloch@gmail.com> - 2016-02-11 15:45 -0800
                Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-12 01:19 +0100
                Re: Java Checked Exception is BAD! Lew <lewbloch@gmail.com> - 2016-02-11 19:18 -0800
                Re: Java Checked Exception is BAD! Sebastian <news@seyweiler.dyndns.org> - 2016-02-12 08:31 +0100
                Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-12 15:33 +0100
                Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-12 15:41 +0100
                Re: Java Checked Exception is BAD! Silvio <silvio@internet.com> - 2016-02-12 15:42 +0100
                Re: Java Checked Exception is BAD! Martin Gregorie <martin@address-in-sig.invalid> - 2016-02-08 21:19 +0000
        Re: Java Checked Exception is BAD! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-02-05 13:00 -0500
  Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 15:51 -0800
    Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 15:59 -0800
      Re: Java Checked Exception is BAD! boxzou@gmail.com - 2016-02-04 16:03 -0800
    Re: Java Checked Exception is BAD! Eric Douglas <e.d.programmer@gmail.com> - 2016-02-05 05:33 -0800
  Re: Java Checked Exception is BAD! Kevin McMurtrie <mcmurtrie@pixelmemory.us> - 2016-02-04 21:05 -0800
  Re: Java Checked Exception is BAD! ynseo <yeori.seo@gmail.com> - 2016-02-08 01:05 -0800
  Re: Java Checked Exception is BAD! Sebastian <sebastian.millies@softwareag.com> - 2016-02-19 03:43 -0800

csiph-web