From: Stephen Leake <stephen_leake@stephe-leake.org>
Subject: Re: Structured exception information
Date: Thu, 01 Feb 2007 07:20:50 -0500
Date: 2007-02-01T07:20:50-05:00 [thread overview]
Message-ID: <utzy6oyql.fsf@stephe-leake.org> (raw)
In-Reply-To: 1170269889.28280.69.camel@localhost
Georg Bauhaus <bauhaus@arcor.de> writes:
> On Mon, 2007-01-29 at 21:15 -0500, Stephen Leake wrote:
>
>> Have you worked on a real system where this approach was used, and was
>> in fact better than having the programmers write the error messages?
>
> I worked on a system involving 3 companies where one style of
> exception handling was to be silent about them (empty handlers).
> Another style was to write a few words that could be understood
> by the programmer who wrote the handler because he knew the
> context. These were (are, I think the programs are still up and
> running) communicating programs, no source code was exchanged.
>
> But when the exceptions were reported as strings into some log
> some of us on all sides were out of luck. Strings are too easy
> to write. People didn't give them enough attention, and they
> didn't create exception types either even when this was possible
> (in Java). And you don't ask for education across company borders
> if there is a hierarchy. Let alone speak of education!
Ok, so the answer to my question is "no".
There certainly was a problem, but it appears that structured
exceptions were not accepted as a solution. On the other hand, neither
was programmer education, so apparently we are both wrong :).
>> So why not
>> > create or extend a type for the information and pass objects
>> > of the type, not formatted strings?
>>
>> "Why not"? Because it's easier not to! That is the topic of this
>> thread.
>
> I'm not so sure what is easier to do, write a good exception
> message or build up an exception object containing the necessary
> information about what happened. It seems easier to just write an
> exception message string. Easy programming. But once it is written,
> the information is as inflexibly coded as can be: You need parsing
> if you have to extract it. I need to extract it if and when I
> cannot change what a 3rd party library is reporting. There just
> is no "education" or telling them what they should write in
> exception messages.
Yes, I have said that designing exceptions for libraries intended to
be used in a wide variety of systems is hard. In that case, it might
be useful for the library to define a structured exception type. But
it might be even better to provide status instead of exceptions.
>> > In summary, then, I would prefer the separation of typed exception
>> > data and exception message strings. The first is far more flexible
>>
>> It is far _less_ flexible! that is the point. Any pre-defined type
>> structure is (by definition!) less flexible than a string. I can put
>> _anything_ in a string;
>
> Certainly _you_ can place anything inside an exception message string.
> (To say a few absurd things, for example a Tcl program. No problem.
> I could even suggest that we use Storage_Element_Array instead of
> String for the message as this helps preserving memory layouts... :)
> As a user of your exception message I get something that is carved in,
> well, a String. As a user of an exception object of an exception type,
> I'll have the necessary information at my disposal (hopefully).
> For me then this is more flexible and easier than parsing message
> strings.
So I'm talking about having control over the _entire_ system, and you
are talking about third party libraries. That is different.
--
-- Stephe
next prev parent reply other threads:[~2007-02-01 12:20 UTC|newest]
Thread overview: 181+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-15 13:44 Structured exception information Maciej Sobczak
2007-01-15 17:17 ` claude.simon
2007-01-16 9:04 ` Maciej Sobczak
2007-01-16 22:39 ` Randy Brukardt
2007-01-15 17:28 ` Robert A Duff
2007-01-15 18:29 ` Georg Bauhaus
2007-01-15 19:44 ` Dmitry A. Kazakov
2007-01-15 20:06 ` Georg Bauhaus
2007-01-15 21:56 ` Randy Brukardt
2007-01-15 22:32 ` Robert A Duff
2007-01-16 18:36 ` Ray Blaak
2007-01-16 19:18 ` C# versus Ada (was: Structured exception information) Georg Bauhaus
2007-01-16 23:29 ` C# versus Ada Markus E Leypold
2007-01-18 10:22 ` Dmitry A. Kazakov
2007-01-17 18:14 ` C# versus Ada (was: Structured exception information) Ray Blaak
2007-01-16 23:27 ` Structured exception information Markus E Leypold
2007-01-17 7:28 ` Martin Krischik
2007-01-16 22:36 ` Randy Brukardt
2007-01-17 16:12 ` Bob Spooner
2007-01-17 23:42 ` Randy Brukardt
2007-01-16 9:11 ` Dmitry A. Kazakov
2007-01-16 10:45 ` Maciej Sobczak
2007-01-16 13:26 ` Dmitry A. Kazakov
2007-01-16 14:44 ` Maciej Sobczak
2007-01-16 15:15 ` Dmitry A. Kazakov
2007-01-16 17:50 ` Jeffrey Carter
2007-01-16 18:31 ` Dmitry A. Kazakov
2007-01-16 22:52 ` Randy Brukardt
2007-01-17 8:58 ` Dmitry A. Kazakov
2007-01-17 18:38 ` Jeffrey Carter
2007-01-17 23:18 ` Randy Brukardt
2007-01-17 23:46 ` Robert A Duff
2007-01-18 6:34 ` Jeffrey Carter
2007-01-19 7:34 ` Randy Brukardt
2007-01-19 13:52 ` Dmitry A. Kazakov
2007-01-19 18:57 ` Jeffrey Carter
2007-01-19 19:57 ` Robert A Duff
2007-01-20 20:59 ` Jeffrey Carter
2007-01-18 9:55 ` Dmitry A. Kazakov
2007-01-18 18:28 ` Jeffrey Carter
2007-01-17 23:36 ` Randy Brukardt
2007-01-18 10:16 ` Dmitry A. Kazakov
2007-01-15 22:19 ` Robert A Duff
2007-01-16 13:12 ` Georg Bauhaus
2007-01-15 22:42 ` Adam Beneschan
2007-01-15 23:22 ` Robert A Duff
2007-01-16 6:03 ` tmoran
2007-01-16 13:30 ` Stephen Leake
2007-01-16 14:33 ` Maciej Sobczak
2007-01-16 14:45 ` Georg Bauhaus
2007-01-16 17:54 ` Jeffrey Carter
2007-01-16 22:55 ` Randy Brukardt
2007-01-17 12:10 ` Stephen Leake
2007-01-17 14:05 ` Maciej Sobczak
2007-01-19 9:47 ` Stephen Leake
2007-01-19 11:03 ` Dmitry A. Kazakov
2007-01-20 15:04 ` Stephen Leake
2007-01-21 10:40 ` Dmitry A. Kazakov
2007-01-23 7:28 ` Stephen Leake
2007-01-23 14:21 ` Dmitry A. Kazakov
2007-01-25 2:39 ` Stephen Leake
2007-01-19 13:36 ` Maciej Sobczak
2007-01-20 15:33 ` Stephen Leake
2007-01-20 16:33 ` Robert A Duff
2007-01-21 22:42 ` Stephen Leake
2007-01-21 23:45 ` Robert A Duff
2007-01-22 9:14 ` Maciej Sobczak
2007-01-23 7:33 ` Stephen Leake
2007-01-23 15:07 ` Robert A Duff
2007-01-23 15:54 ` Maciej Sobczak
2007-01-23 17:10 ` Robert A Duff
2007-01-23 23:59 ` Randy Brukardt
2007-01-22 9:28 ` Maciej Sobczak
2007-01-23 9:46 ` Stephen Leake
2007-01-23 14:18 ` Maciej Sobczak
2007-01-25 2:32 ` Stephen Leake
2007-01-25 8:53 ` Maciej Sobczak
2007-01-26 9:35 ` Stephen Leake
2007-01-26 11:16 ` Markus E Leypold
2007-01-26 13:46 ` Georg Bauhaus
2007-01-27 18:17 ` Stephen Leake
2007-01-28 12:38 ` Simon Wright
2007-01-28 12:39 ` Simon Wright
2007-01-28 13:18 ` Stephen Leake
2007-01-28 15:44 ` Georg Bauhaus
2007-01-28 21:48 ` Ray Blaak
2007-01-28 18:50 ` Georg Bauhaus
2007-01-30 2:15 ` Stephen Leake
2007-01-31 18:58 ` Georg Bauhaus
2007-02-01 12:20 ` Stephen Leake [this message]
2007-02-01 14:17 ` Georg Bauhaus
2007-01-25 21:52 ` Randy Brukardt
2007-01-24 0:10 ` Randy Brukardt
2007-01-24 14:17 ` Wasteful internationalization (Was: Structured exception information) Alex R. Mosteo
2007-01-24 14:49 ` Dmitry A. Kazakov
2007-01-24 23:48 ` Wasteful internationalization Björn Persson
2007-01-25 9:45 ` Markus E Leypold
2007-01-24 21:03 ` Wasteful internationalization (Was: Structured exception information) Randy Brukardt
2007-01-25 11:17 ` Alex R. Mosteo
2007-01-25 21:37 ` Wasteful internationalization Björn Persson
2007-01-25 21:57 ` Wasteful internationalization (Was: Structured exception information) Randy Brukardt
2007-01-26 9:13 ` Dmitry A. Kazakov
2007-01-26 12:12 ` Georg Bauhaus
2007-01-27 4:09 ` Randy Brukardt
2007-01-27 17:15 ` Wasteful internationalization Stephen Leake
2007-01-27 20:44 ` Markus E Leypold
2007-01-28 0:09 ` Björn Persson
2007-01-28 1:08 ` Björn Persson
2007-01-28 15:21 ` Markus E Leypold
2007-01-29 1:23 ` Larry Kilgallen
2007-01-29 19:02 ` Björn Persson
2007-01-29 20:19 ` Larry Kilgallen
2007-02-01 6:23 ` Simon Wright
2007-02-03 0:48 ` Björn Persson
2007-02-03 1:04 ` Adam Beneschan
2007-02-03 11:52 ` Larry Kilgallen
2007-02-03 2:36 ` Markus E Leypold
2007-02-03 2:37 ` Markus E Leypold
2007-02-03 19:59 ` Björn Persson
2007-02-03 20:16 ` Markus E Leypold
2007-02-05 19:26 ` Björn Persson
2007-02-04 4:51 ` Alexander E. Kopilovich
2007-02-05 19:27 ` Björn Persson
2007-02-06 1:32 ` Randy Brukardt
2007-02-06 1:54 ` Markus E Leypold
2007-02-07 1:55 ` Björn Persson
2007-02-07 2:20 ` Markus E Leypold
2007-02-12 1:33 ` Björn Persson
2007-02-12 8:16 ` Franz Kruse
2007-02-12 9:20 ` Not at all wasteful internationalization Martin Krischik
2007-02-12 11:08 ` Georg Bauhaus
2007-02-12 13:02 ` Martin Krischik
2007-02-07 20:39 ` Wasteful internationalization Randy Brukardt
2007-02-08 13:33 ` Stephen Leake
2007-02-12 2:42 ` Björn Persson
2007-02-06 11:01 ` Peter Hermann
2007-02-06 19:02 ` OT: Flash (was: Re: Wasteful internationalization) Jeffrey R. Carter
2007-02-06 19:40 ` OT: Flash Markus E Leypold
2007-02-03 11:51 ` Wasteful internationalization Larry Kilgallen
2007-01-29 18:54 ` Björn Persson
2007-01-29 19:03 ` Markus E Leypold
2007-01-30 17:46 ` Georg Bauhaus
2007-01-30 19:37 ` Markus E Leypold
2007-01-30 20:43 ` Georg Bauhaus
2007-01-30 20:50 ` Georg Bauhaus
2007-01-30 21:54 ` Markus E Leypold
2007-01-31 11:26 ` Alex R. Mosteo
2007-01-31 15:17 ` Markus E Leypold
2007-02-03 0:49 ` Björn Persson
2007-02-03 16:05 ` Alex R. Mosteo
2007-02-03 0:48 ` Björn Persson
2007-02-01 12:08 ` Stephen Leake
2007-02-03 0:49 ` Björn Persson
2007-02-03 9:46 ` Dmitry A. Kazakov
2007-02-03 18:48 ` Stephen Leake
2007-02-03 20:27 ` Björn Persson
2007-01-30 2:20 ` Stephen Leake
2007-01-30 10:01 ` Wasteful internationalization (Was: Structured exception information) Harald Korneliussen
2007-01-19 15:45 ` Structured exception information Robert A Duff
2007-01-20 16:08 ` Stephen Leake
2007-01-20 21:59 ` Robert A Duff
2007-01-19 18:14 ` Ray Blaak
2007-01-19 20:07 ` Robert A Duff
2007-01-20 16:16 ` Stephen Leake
2007-01-20 21:20 ` Ray Blaak
2007-01-21 22:34 ` Stephen Leake
2007-01-20 22:07 ` Robert A Duff
2007-01-21 10:45 ` Dmitry A. Kazakov
2007-01-21 23:51 ` Robert A Duff
2007-01-22 14:39 ` Dmitry A. Kazakov
2007-01-22 19:02 ` Robert A Duff
2007-01-23 14:23 ` Dmitry A. Kazakov
2007-01-29 1:30 ` Brian May
2007-01-16 13:30 ` Structured exception information (task, ANEX E) Martin Krischik
2007-01-16 23:07 ` Randy Brukardt
2007-01-19 16:01 ` Robert A Duff
2007-01-22 7:17 ` Martin Krischik
2007-01-22 19:40 ` Robert A Duff
2007-01-16 15:48 ` Structured exception information Alex R. Mosteo
2007-01-16 18:07 ` Jeffrey Carter
2007-01-17 6:38 ` Duncan Sands
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox