exceptions (was "working together")

Stephen Pope stp9 at cornell.edu
Wed Jul 14 19:25:53 UTC 1999


Craig Latta wrote:

>> As it turns out, there just came in a new implementation and 
>> as a matter of fact I like it a *lot* - it is clean,
>> understandable and very well written. It is by far the best 
>> implementation I have seen... 
>
>    Why? Why is it better than the one I did? Is it the ANSI interface issue? 

IMHO, it's not an issue of ANSI compatibility, but of the basic semantics of 
exceptions. Permit me to make two comments; first, I personally find the usage 
pattern of,

    thisContext handle: signalName withDescription: descriptionString

(as used in CL's EH framework) pretty awful -- signals are not strings! 
I'm just more used to VW's paradigm of,

    aSignal raiseWith: someArg

like in every other ST-based exception implementation. (It's not important to 
me whether you use a class-based or instance-based signal model, just not a 
symbol-based one!)

Secondly, there seems to be some confusion or disagreement about the semantics 
of proceedability. In every other system I've ever used, proceedability is a 
property of an exception, not an argument to the raise: message as in Craig's

    situation handleWithParameter: arg description: descr andProceedability: aBoolean

This cost me alot of porting effort for code that assumed that certain exceptions 
were always proceedable.

I've looked over the Fourth Estate code, and am impressed. I'm planning to port 
the SMS database over to it, and hope to make some progress in adding EH to the 
system classes (for examples other than x/0, e.g., stream and file exceptions).
If there are any volunteers to help make the entire core of Squeak "exception-
friendly," I volunteer to try to coordinate effort so that we come up with 
something worthy of inclusion in the base system.

-- 
stp

Stephen Travis Pope | stp9 at cornell.edu | http://www.create.ucsb.edu/~stp





More information about the Squeak-dev mailing list