[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: exception systems

   References: <199604181735.NAA01192@lambda.ai.mit.edu>
   Date: Thu, 18 Apr 1996 14:47:04 -0400
   From: Matthias Blume <blume@cs.Princeton.EDU>

   Here is another one: Does anybody else also think the proposals we've
   seen so far are -- excuse the word -- bloated?  I even read the
   word(s) ``multiple inheritance'' somewhere!  Uuugh!

Excuse me?  My first proposal contained three procedures and
included an implementation in fourteen lines of Scheme.  Hardly
`bloated'.  It was seen as completely inadequate.

My second proposal does in fact have multiple inheritance
among conditions.  I hated to do it, but in the end it really
seemed necessary.  Kent Pitman convinced me with examples
like the following:

Suppose you have a distributed file system and you can't open
a port on a remote file because the ethernet is not responding.
For file systems there is a FILE-CREATION-FAILURE condition and
for networks there is a TEMPORARY-NETWORK-OUTAGE condition.
Neither is a subtype of the other, they have different recovery
options (trying another name vs. waiting for the network to
come back) and both are equally appropriate for the current
situation.  With multiple inheritance you can signal both

There are other solutions to this.  The one I proposed is
the best I have been able to come up with.  This was by far
the hardest part of the proposal to design.

If the proposal is bloated, what should be left out?  What
could be compressed?  `Uuugh!' is hardly constructive criticism.

                               -Richard Kelsey