Program logic bugs vs input/environmental errors (checked exceptions)

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Mon Oct 6 18:19:06 PDT 2014


On 10/6/14, 4:46 PM, Jeremy Powers via Digitalmars-d wrote:
> On Mon, Oct 6, 2014 at 7:50 AM, Andrei Alexandrescu via Digitalmars-d
>     I'm thinking a simple key-value store Variant[string] would
>     accommodate any state needed for differentiating among exception
>     kinds whenever that's necessary.
>
>
> And 'kinds' is a synonym for 'types' - You can have different kinds of
> problems, so you raise them with different kinds of exceptions.
>
> s/kind/type/g and the question is: why not leverage the type system?

I've used "kinds" intentionally there. My basic thesis here is I haven't 
seen any systematic and successful use of exception hierarchies in 20 
years. In rare scattered cases I've seen a couple of multiple "catch"es, 
and even those could have been helped by the use of a more flat 
handling. You'd think in 20 years some good systematic use of the 
feature would come forward. It's probably time to put exception 
hierarchies in the "emperor's clothes" bin.

> For a consumer-of-something-that-throws, having different types of
> exceptions for different things with different data makes sense.  You
> have to switch on something to determine what data you can get from the
> exception anyway.

Oh yah I know the theory. It's beautiful.

>     It's commonly accepted that the usability scope of OOP has gotten
>     significantly narrower since its heydays. However, surprisingly, the
>     larger community hasn't gotten to the point to scrutinize
>     object-oriented error handling, which as far as I can tell has never
>     delivered.
>
>
> Maybe, but what fits better?  Errors/Exceptions have an inherent
> hierarchy, which maps well to a hierarchy of types.  When catching an
> Exception, you want to guarantee you only catch the kinds (types) of
> things you are looking for, and nothing else.

Yah, it's just that most/virtually all of the time I'm looking for all. 
And nothing else :o).


Andrei



More information about the Digitalmars-d mailing list